我想将ActionListener添加到一组按钮。
是否有包装按钮的类?是GroupJButtons还是更一般的对象组?因此我可以为所有这些设置一个ActionListener
毕竟,我并不真正在乎按下哪个按钮,我只想更改他的文本,所以我要做的就是将其转换为JButton并更改文本。

整个过程将减少1或2的代码行(以防您使用循环),但是我想这样做,因为听起来在逻辑上更好。

最佳答案

在这种情况下,您可以扩展AbstractAction类,并将同一操作简单地应用于许多按钮。

  class MyAction extends AbstractAction {
       public MyAction(String text, ImageIcon icon,
                  String desc, Integer mnemonic) {
       super(text, icon);
       putValue(SHORT_DESCRIPTION, desc);
        putValue(MNEMONIC_KEY, mnemonic);
   }
   public void actionPerformed(ActionEvent e) {
        //do the action of the button here
    }
  }

然后,对于您希望发生相同事情的每个按钮,您可以:
 Action myAction = new MyAction("button Text", anImage, "Tooltip Text", KeyEvent.VK_A);
 button = new JButton(myAction);

关于java - 一个用于多个JButton的ActionListener,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13788399/

10-12 05:20