黑马程序员技术交流社区
标题:
GUI事件执行的顺序
[打印本页]
作者:
于星星
时间:
2012-7-27 22:23
标题:
GUI事件执行的顺序
下面的例子中,button事件源被添加了两个事件监听ActionListener和MouseListener,当点击这个按钮时,哪个事件会先被触发呢?
import java.awt.*;
import java.awt.event.*;
public class MouseKeyEventDemo {
private Frame frame;
private Button btn;
public MouseKeyEventDemo() {
init();
}
public void init() {
frame = new Frame("my frame");
frame.setBounds(300, 200, 500, 400);
frame.setLayout(new FlowLayout());
btn = new Button("按钮");
frame.add(btn);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("actionPerformed被执行了"); }
});
btn.addMouseListener(new MouseAdapter() {
private int count = 1;
public void mouseEntered(MouseEvent e) {
System.out.println("鼠标第" + count + "次进入到按键上了!!");
count++;
}
public void mouseClicked(MouseEvent e) {
if(e.getClickCount()==2)
System.out.println("双击动作!");
}
});
btn.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent k){
System.out.println(k.getKeyChar()+":"+k.getKeyCode()+k.getKeyText(k.getKeyCode()));
}
});
frame.setVisible(true);
}
public static void main(String[] args) {
new MouseKeyEventDemo();
}
}
作者:
朱烈葵
时间:
2012-7-27 22:39
应该是ActionListener
作者:
柳雷
时间:
2012-7-28 09:31
本帖最后由 柳雷 于 2012-7-28 09:38 编辑
所谓事件监听器,就是当你触发某个事件的时候,监听器会做出一定的相应,对于你写的两个监听器,
一个是鼠标划过按钮时的监听器和
鼠标按下
,一个是
按钮被按下
。
下面是一次双击的执行结果:
11.png
(1.65 KB, 下载次数: 58)
下载附件
2012-7-28 09:32 上传
从结果中可以看出mouseEntered鼠标划过被执行,然后是双击动作开始,再双击过程中,由于按钮被
按下所以触发事件ActionListener,当第二次按下鼠标即开始执行mouseClicked中的动作,另外这也是
一次按钮被按下的动作,所以又执行一次ActionListener。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2