我想ActionListener
在一组按钮中添加一个。有没有包装按钮的类?类似的东西GroupJButtons
或更一般的东西组对象?所以我可以ActionListener
为所有这些设置一个。毕竟我并不关心按下了哪些按钮,我只想更改他的文本,所以我需要做的就是将其转换为 aJButton
并更改文本。
整个过程将减少 1 或 2 中的代码行(以防您使用循环),但我想这样做,因为它在逻辑上听起来更好。
我想ActionListener
在一组按钮中添加一个。有没有包装按钮的类?类似的东西GroupJButtons
或更一般的东西组对象?所以我可以ActionListener
为所有这些设置一个。毕竟我并不关心按下了哪些按钮,我只想更改他的文本,所以我需要做的就是将其转换为 aJButton
并更改文本。
整个过程将减少 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);
您可以使用它来创建每个按钮
private JButton createButton(String title, ActionListener al) {
JButton button = new JButton(title);
button.addActionListener(al);
return button;
}
这是处理动作
public void actionPerformed (ActionEvent ae) {
JButton button = (JButton)ae.getSource();
button.setText("Wherever you want");
}