创建图像化界面
1,创建frame窗体
2,对窗体进行基本设置
比如大小,位置,布局
3,定义组件
4,将组件通过窗体的add方法添加到窗体中
5,让窗体显示,通过setVisible(true);
事件监听机制的特点:
1,事件源
2,事件
3,监听器
4,事件处理
事件源:就是awt包或者swing包中的那些图形界面组件
事件:每一个事件源都有自己特有的对应事件和共性事件
监听器:将可以触发某一个事件的动作(不止一个动作)都已经封装到了监听器中
以上三者,在java中都已经定义好了,
直接获取其对象来用就可以了。
我们要做的事情,就是对产生的动作进行处理。
import java.awt.*;
import java.awt.event.*;
class AwtDemo
{
public static void main(String[] args)
{
Frame f = new Frame("my awt");//默认窗体不可见,默认边界布局
f.setSize(500,400);//设置长和宽,即横坐标和纵坐标
f.setLocation(300,200);//设置窗体出现在屏幕位置,即距离左边和上面距离
f.setLayout(new FlowLayout());//设置窗体布局,设置为流式布局
Button b = new Button("我是一个按钮");
f.add(b);//添加按钮
f.addWindowListener(new WindowAdapter()//匿名内部类
{
public void windowClosing(WindowEvent e)
{
System.out.println("我关");
System.exit(0);
}
public void windowActivated(WindowEvent e)//窗口前置
{
System.out.println("我活了");
}
public void windowOpened(WindowEvent e)//打开窗口
{
System.out.println("我被打开了");
}
});// 添加指定窗口监听器
f.setVisible(true);//设置显示窗体
//System.out.println("hew");
}
}
/*
class MyWin implements WindowListener
{
//要覆盖7个方法,可是我只用到了关闭的动作。
//其他动作都没有用到,可是却必须要复写。
}
*/
//因为WindowListener的子类WindowAdapter已经实现了
//WindListener接口。并覆盖了其中的所有方法。那么我
//只要继承自Windowadapter覆盖我需要的方法即可
class MyWin extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
//System.out.println("window closing----"+e.toString());
System.exit(0);//关闭窗口
}
}
-----------------------------------------------------------------------------
事件和图形化组件分离开
例:
import java.awt.*;
import java.awt.event.*;
class FrameDemo
{
//定义该图形中所需的组件的引用
private Frame f;
private Button but;
FrameDemo()//构造函数
{
init();
}
public void init() //此处定义图形界面
{
f = new Frame("my frame");
//对frame进行基本设置
f.setBounds(300, 100, 600, 500);//移动组件并调整大小
f.setLayout(new FlowLayout());
but = new Button("my button");
//将组件添加到frame中
f.add(but);
//加载窗体上事件
myEvent(); //此处添加了关闭窗口的事件,
//显示窗体
f.setVisible(true);
}
private void myEvent() //此处定义事件
{
f.addWindowListener(new WindowAdapter() //监听器,匿名内部类
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//让按钮具备退出程序的功能
/*
按钮就是事件源。
那么选择哪个监听器呢?
通过关闭窗体示例了解到,想要知道哪个组件具备什么
样的特有监听器,需要查看该组件对象的功能。
通过查阅button的描述,发现按钮支持一个特有监听
addActionListener.
*/
but.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.out.println("退出,按钮干的");
System.exit(0);
}
});
}
public static void main(String[] args)//主函数
{
new FrameDemo(); //创建对象,产生窗体
}
}
--------------------------------------------------------------------------------
个人总结:记住窗口,按钮,文本框等一些相关命令,图形设计和事件分离,
要确定事件源,事件要写匿名内部类