今天在使用Java Swing中的JButton的事件触发机制时遇到了许多问题,简单的了解了一下。
事件监听的机制如下图所示分析。
1.事件源注册监听器
JButton newButton = new JButton();
newButton.addActionLister(listener);
2.用户触发事件
例如单击该按钮
3.创建事件对象即ActionEvent Object
ActionEvent e;
4.将事件的对象传递给监听器并调用监听器方法
@Override
public void actionPerformed(ActionEvent e) {
// 相应的逻辑判断
if(e.getSource()==jb)
{
this.dispose();
// 点击按钮时frame1销毁,new一个frame2
new frame2();
}
}
以上代码也可以这样设计:
JButton newButton = new JButton();
newButton.addActionLister(listener);//事件源注册监听器
newButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==jb) {
this.dispose();
// 点击按钮时frame1销毁,new一个frame2
new frame2();
}
});
}
例如,点击按钮,后台输出一句话。
public static void main(String[] args) {
JFrame jf = new JFrame('事件监听测试');
jf.setVisible(true);
jf.setSize(100, 200);
JButton jb = new JButton('触发事件');
jf.add(jb);
jb.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 进行逻辑处理即可
System.out.println('触发了事件');
}
});
}
The listener interface for receiving action events. The class that is
interested in processing an action event implements this interface,
and the object created with that class is registered with a component,
using the component’s addActionListener method. When the action event
occurs, that object’s actionPerformed method is invoked.
简单点说,actionListener()接口是Java中关于事件处理的一个接口,继承自EventListener。
联系客服