0

内部にいくつかの s がありますJPopupMenuJMenuItemそれぞれ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か?

ありがとう

4

1 に答える 1

0

これは基本的にJBNizetの答えですが、匿名アクションリスナーを実際のクラスにします。

短いものはメニュークラスに残すことができ、大きいものは独自のクラスに入れることができます。私は通常、内部クラスをクラスの一番下に配置します。何人かの人々はそれらすべてを一番上に置きます。

アクションリスナーを実際のクラスにすることで、コンストラクターを使用してJComponentインスタンスをアクションリスナークラスに渡すことができます。

于 2013-02-07T14:06:15.097 に答える