我写了扫雷游戏。因为我有两个监听器作为一个按钮,
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 都会被调用并且工作得很好。
我想,这两个监听器是两个不同的独立线程,监听事件,但是为什么一个依赖于另一个呢?