如何组织几个ActionListeners

时间:2013-02-07 13:06:35

标签: java swing

我的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

由于

1 个答案:

答案 0 :(得分:0)

这基本上是JB Nizet的答案,但是让匿名动作侦听器成为实际的类。

短的可以保留在菜单类中,较大的可以放在他们自己的类中。我通常将内部课程放在课堂的最底层。有些人把它们全都放在首位。

通过使动作侦听器成为实际类,可以使用构造函数将JComponent实例传递给动作侦听器类。