1

プログラム用のパネルを作成しました。RadioButton のみで構成されます。ラジオボタンが選択されているときに、別のコードでブール値を設定したい。このパネルは、このパネル内で発生するイベントをリッスンできる大きなパネルまたはフレームのコンポーネントとして使用されます。

したがって、イベントをリッスンするために次のオプションのどれを選択する必要がありますか?

1 -

RadioButtonPanel extends JPanel implements ActionListener{

  public void actionPerformed(ActionEvent e){}
  //code to add the action listener to the radio buttons 
  oneRadioButton.addActionListener(this);   
}

2 -

RadioButtonPanel extends JPanel{

  class InnerStrength implements ActionListener{
     public void actionPerformed(ActionEvent e){} 
   }    

  //code to add the action listener to the radio buttons     
  oneRadioButton.addActionListener(Anonymous InnerStrength) 

}

3 - 私が思いつかなかった他の方法はありますか?

4

2 に答える 2

5

オプション 3. JPanel を使用して目標を達成できる場合は、JPanel をまったく拡張しないでください:-)

すべての JSomething には、そのまま使用できるように設計された機能が組み込まれています。JPanel の組み込み機能は、汎用コンテナーの機能です。子を追加するだけなので、拡張する必要はありません。リスナーを使用して子を構成することは、... 構成コードで行うことができます。

拡張によって実際に機能が追加される場合 (カスタム背景ペインティングを実装している可能性のある JPanel の場合)、一般的なルールは、行儀の良い OO 市民の場合と同様に、パブリックな使用を意図していないパブリック API を公開しないことです。したがって、バリアント 1オプションではありません。

于 2013-04-01T09:21:26.777 に答える