【发布时间】:2013-03-30 13:05:59
【问题描述】:
我写了扫雷游戏。因为我有两个监听器作为一个按钮,
class SampleClass extends MouseAdapter implements ActionListener {
//Some code here
public void actionPerformed(ActionEvent event){ // Buttons listener..
System.out.println("I came here to actionPerformed.");
//Some Code
}
public void mouseClicked(MouseEvent event) { //Mouse listener..
System.out.println("I came here to MouseClicked.");
//Some Code
if(event.getButton() == MouseEvent.BUTTON3){..}//If Right Mouse Button Is Clicked!!
else if(event.getButton() == MouseEvent.BUTTON1){..}//If Left Mouse Button Is Clicked!!
}
}
我观察到的是,每当鼠标左键被点击时,唯一的actionPerformed 被调用而不是mouseClicked。但是在点击鼠标右键时,会调用mouseClicked(正常情况下不会调用actionPerformed)。
但是,当我删除 ActionListener 时,然后在 两次单击 左右鼠标按钮 mouseClicked 被调用 并且工作正常。
我以为,两个监听器是两个不同的独立线程,监听事件,但是为什么一个依赖另一个呢?
【问题讨论】:
-
你指的是哪个框架?
-
@sanbhat JButton 。我没有得到框架这个词。
标签: java swing actionlistener mouselistener