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);
	}
}

效果:

Java GUI设计第6篇:响应用户事件_第1张图片

按下按扭之后:

Java GUI设计第6篇:响应用户事件_第2张图片

可以发现,我们在按下了按扭之后,窗口的大小发生了改变。

如果我们需要产生产生事件,那么需要给事件源添加上事件监听器,事件监听器通常就是一个类的对象,这个类实现了一个XXXListener接口,这个接口中会有一个或多个方法,对应在不同的情况下做不同的事情。分别去重写这些方法,就可以完成了。在ActionListener中只有一个actionPerformed方法,这个方法中内容表示按下按扭时的事情。

在按下按扭之后,窗口的属性发现改变时,按下鼠标,键盘时,都会产生一个事件,这些事件都有对应的事件监听器接口,接口中有一个方法。接下来的文章,我们将对各种事件一一解释。

你可能感兴趣的:(Java,GUI)