在定义简单单击JButton的行为时,哪种方法是正确的?而且,有什么区别?
JButton but = new JButton();
but.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("You clicked the button, using an ActionListener");
}
});
或者
JButton but = new JButton();
but.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
System.out.println("You clicked the button, using a MouseListenr");
}
});
最佳答案
MouseListener
是Swing中的低级事件监听器(顺便说一下,也是AWT)。ActionListener
是更高级别的,应使用。
但是,比ActionListener
更好,应该使用javax.swing.Action
(实际上是ActionListener
)。
使用Action
可以在几个小部件之间共享它(例如JButton
,JMenuItem
...);您不仅可以共享按下按钮/菜单时触发的代码,还可以共享状态,特别是可以共享操作(及其关联的小部件)是否处于启用状态。
关于java - 为JButton添加MouseListener或actionListener?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3616761/