java - JButton 的 addMouseListener 或 actionListener?

标签 java swing button

在定义 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 允许在多个小部件之间共享它(例如 JButtonJMenuItem...);您不仅共享按下按钮/菜单时触发的代码,而且还共享状态,特别是操作(及其关联的小部件)是否启用的事实。

关于java - JButton 的 addMouseListener 或 actionListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3616761/

相关文章:

java - 如何将xml文件中的数据直接导入cassandra

java - BeanShell 命令行解释器功能

java - Java 中的点双列相关性

java - 使用 Swing 打印多页

java - 如何在 Java Swing GUI 中显示 JFreeChart?

asp.net - 带有 css 的 asp.net 按钮上的图像图标和文本?

Java EE 6 和替代品

java - 在 Swing 文本区域中用图像替换微笑

android - 如何创建等宽的按钮?

javascript - 如何在 $.get URL 中调用 this.id