Java GUI设计第6篇:响应用户事件
在之前我们设计的窗口程序中,对所有的组件都只是进行了添加。而在实际的程序中,我们通常都会按一个按扭,然后触发一个事件,让程序做一件事情。
这就是一个事件。对于一个事件,我们通常都会涉及到3个对象:
1.事件源(Source),就是产生事件的对象,比如一个JButton。
2.事件(Event),比如按下鼠标,产生鼠标事件,按下键盘,产生键盘事件。通常事件类为XXXEvent。
3.事件监听器(Listener),就是检测事件的对象,通常为XXXListener。
当我们按下一个按扭时,就会产生事件,这个按扭为事件源,产生了ActionEvent,由ActionListener检测。
下面举一个简单的例子,当按下一个按扭时,将窗口进行改变大小:
package teach6;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class F1 extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
private JButton b;
public F1() {
this.setSize(300, 300);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
b=new JButton("改变大小");
this.setLayout(null);
b.setBounds(20, 20, 150, 50);
//对b这个按扭添加事件监听器
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
setSize(400,400);
}
});
this.add(b);
}
public static void main(String[] args) {
F1 f=new F1();
f.setVisible(true);
}
}
效果:
按下按扭之后:
可以发现,我们在按下了按扭之后,窗口的大小发生了改变。
如果我们需要产生产生事件,那么需要给事件源添加上事件监听器,事件监听器通常就是一个类的对象,这个类实现了一个XXXListener接口,这个接口中会有一个或多个方法,对应在不同的情况下做不同的事情。分别去重写这些方法,就可以完成了。在ActionListener中只有一个actionPerformed方法,这个方法中内容表示按下按扭时的事情。
在按下按扭之后,窗口的属性发现改变时,按下鼠标,键盘时,都会产生一个事件,这些事件都有对应的事件监听器接口,接口中有一个方法。接下来的文章,我们将对各种事件一一解释。