在定义简单单击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添加MouseListener或actionListener?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3616761/

10-12 04:41