import java.awt.*; public class FrameDemo { public static void main(String[] args) { int w = Toolkit.getDefaultToolkit().getScreenSize().width; int h = Toolkit.getDefaultToolkit().getScreenSize().height;
//创建Frame类的对象,空参数的构造方法 Frame f = new Frame("这是我的第一个窗体"); //设置尺寸,调用父类方法setSize f.setSize(600, 300); //对窗体位置设定,调用父类方法setLocation f.setLocation((w-600)/2, (h-300)/2); //调用父类方法setVisible 传递true显示窗体
如果取消了布局管理器,组件,必须定义位置和尺寸,否则不显示。 /* * 窗体的布局管理 * 按钮放在窗体上 */ import java.awt.*; public class FrameDemo1 { public static void main(String[] args) { int w = Toolkit.getDefaultToolkit().getScreenSize().width; int h = Toolkit.getDefaultToolkit().getScreenSize().height;
//创建Frame类的对象,空参数的构造方法 Frame f = new Frame("布局管理"); //设置尺寸,调用父类方法setSize f.setSize(600, 300); //对窗体位置设定,调用父类方法setLocation f.setLocation((w-600)/2, (h-300)/2); f.setBackground(Color.gray); //调用父类方法setVisible 传递true显示窗体 f.setVisible(true); //取消窗体的布局管理器 f.setLayout(null); //创建按钮对象 Button b = new Button("确定"); b.setBounds(100, 50, 50, 30); f.add(b); } }
事件监听机制
写事件监听器,标准格式:事件源.addXXXListener(new XXXAdapter(){ public void 方法名(XXXEvent e){ } });
事件源:就是用户可以操作的组件,按钮,窗体,文本框
事件:鼠标事件,键盘事件,窗体事件
监听器:内置与事件源上的一种监听机制(窃听器),监听鼠标事件,只要有鼠标的动作,就会被监听器捕获
事件处理,一旦监听器监听到了动作,调用响应的函数,进行事件的处理
有一个人,事件源,挨打事件,人的事件源中内部有一个监听机制,监听挨打,监听器捕获到了挨打的事件,打的部位和打的程度,调用不同的处理方法 package cn.itcast.gui; /* * 事件监听机制 * 将窗体关闭 * 事件源是窗体 * 事件窗体事件 * 监听器,监听窗体事件 * 监听器调用关闭的方法,处理事件 */ import java.awt.*; import java.awt.event.*; public class FrameDemo2 { public static void main(String[] args) { Frame f = new Frame("关闭窗体的功能"); f.setBounds(200, 100, 500, 400); f.setVisible(true); //事件远上添加一个事件的监听器,监听窗体事件,父类方法添加窗体监听器 //传递一个WindowListener接口的实现类对象 //f.addWindowListener(new MyListener()); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e){ System.out.println(e); System.exit(0); } }); } } //实现代码的简化,不能为了一个方法,重写7个方法 //接口,必须有实现类,必须全部重写方法 //AbstractMyListener适配器类 Adapter abstract class AbstractMyListener implements WindowListener{ public void windowActivated(WindowEvent e){