0

我有一个里面JPopupMenu有几个JMenuItems。每个JMenuItem都有它自己的ActionListener,但是代码看起来相当混乱,连续有几个匿名内部类。我见过有人ActionListener这样组织几个s:

public class Foo implements ActionListener {

    private JMenuItem item1, item2;

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == item1) {
            ...
        } else if (e.getSource() == item2) {
            ...
        }
    }

}

虽然这看起来更整洁,但我不喜欢让它可见的想法。有没有更好的方法来组织几个ActionListeners?

谢谢

4

1 回答 1

0

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

较短的可以留在菜单类中,较大的可以放在自己的类中。我通常把内部类放在类的底部。有些人把它们都放在顶部。

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

于 2013-02-07T14:06:15.097 回答