4

次のコードを入力したとき:

JButton aButton = new JButton("Button");
aButtin.addActionListener(this);

私の IDE (NetBeans) は、この文が漏れていることを強調しています。ステートメントをそのまま使用することによる悪影響はないようですが、私が読んだいくつかのドキュメントでは、より適切な方法は、ActionListener を実装する内部クラスの新しいインスタンスとしてアクション リスナーを追加することであると示しています。NetBeans とこれらのドキュメントが知っていて、私が知らないことは何ですか? この声明をリークすることは、実際にはどういう意味ですか?この方法でこれを使用することで、私が気付いていないマイナスの影響はありますか?

4

3 に答える 3

2

を使用する場合thisthis複数のソースからの ActionEvent を処理するには、アクションのソースまたはコマンド文字列をチェックするロジックを追加する必要があります。これは完全に合理的です。

他のクラスを使用する場合は、他の場所で実装されている ActionListeners を使用したり、特定の共通の目的のために設計されたものを再利用したり、状況に応じて便利なインラインの匿名内部クラスなどを定義したりできます。これも完全に合理的です。

「利点」または「欠点」の観点から考えないでください -- これはよくある間違いです (xyz を行うのは「悪い」ことですか? xyz は「良い習慣」ですか?)。状況に最も適したものを使用し、最も明確で保守しやすく、適切に機能するコードを提供します。常識を持ち、使用している言語と利用可能なオプションに精通し、正気の判断を下してください。言語とは、アイデアを表現し、明確に話す (タイプする) 方法です。

于 2013-08-07T20:21:08.177 に答える
1

内部クラスの実装を使用することの欠点の 1 つは、同じリスナーが必要な場合に備えて、リスナーを他のボタンに再利用できないことだと思います。このようなもの :

異なるボタンに同じ OnClickListener を使用できますか?

于 2013-08-07T20:19:31.640 に答える