【发布时间】:2014-05-01 01:17:06
【问题描述】:
所以,我会尽力解释这个问题......
基本上,我有一个 GUI,其主窗口上有几个按钮(可能大约 10 个)。我将按钮本身放在一个数组中,但是在处理每个按钮的点击事件时,会发生不同的事情,具体取决于点击哪个按钮。
而不是做这样的事情:
@Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("Button1Text") { /* do stuff */ }
else if(e.getActionCommand().equals("Button2Text") { /* do stuff */ }
else if(e.getActionCommand().equals("Button3Text") { /* do stuff */ }
else if(e.getActionCommand().equals("Button4Text") { /* do stuff */ }
}
有没有更有效的方法来处理每个按钮被点击时的响应?这个想法是,每当单击按钮时,都会打开一个新窗口,让用户执行与该按钮相关的各种任务。我正在考虑以某种方式将getActionCommand() 与Class.forName()/newInstance() 方法结合使用,但我不确定是否有另一种(或更简单)的方法来做这样的事情。
【问题讨论】:
-
我可能会让自己看起来很愚蠢,但你为什么不给每个 Button 分配它自己的 ActionListener?
标签: java swing jbutton actionlistener class-design