我的JPopupMenu
里面有几个JMenuItem
。每个JMenuItem
都有自己的ActionListener
,但代码看起来相当混乱,连续有几个匿名内部类。我见过有些人像这样组织了几个ActionListener
:
public class Foo implements ActionListener {
private JMenuItem item1, item2;
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == item1) {
...
} else if (e.getSource() == item2) {
...
}
}
}
虽然看起来比较整洁,但我不喜欢让它看得见的想法。有没有更好的方法来组织几个ActionListener
?
由于
答案 0 :(得分:0)
这基本上是JB Nizet的答案,但是让匿名动作侦听器成为实际的类。
短的可以保留在菜单类中,较大的可以放在他们自己的类中。我通常将内部课程放在课堂的最底层。有些人把它们全都放在首位。
通过使动作侦听器成为实际类,可以使用构造函数将JComponent实例传递给动作侦听器类。