libro
www.tuyano.com
初心者のためのJava SEプログラミング入門

その他のGUI部品 (2/6)

作成:2010-01-14 16:16
更新:2010-01-14 16:16

■RadiobuttonGroupの働き

見ればわかることなんですが、実をいえばチェックボックスとラジオボタンというのは、同じ「Checkbox」っていうクラスのインスタンスなんです。じゃあどこで違いが区別されるのかというと、普通にnewして作っただけならチェックボックスとなり、newするときに「RadiobuttonGroup」っていうもののインスタンスを設定すると、ラジオボタンになるというわけです。

 このRadiobuttonGroupってのは、要するに「ラジオボタンのグループ分けをするためのクラス」と考えればよいでしょう。RadiobuttonGroupのインスタンスを作り、それをいくつかのCheckboxに設定すると、それらが1つのグループとして認識されるようになり、クリックすると常に1つだけがONになるように自動的に行なってくれる、というわけです。

コードを見るとわかりますが、チェックボックスもラジオボタンも、クリックしてON/OFFするような処理は書く必要はありません。そのあたりは自動的にやってくれます。このへんは便利ですね。

○ItemListener○
さて、クリックして設定変更した時の処理へ進みましょう。これは「アイテムリスナー」というもので行ないます。前に、ボタンクリックした時の処理を思い出してみて下さい。アクションリスナーというものを作って、これをボタンに組み込みましたね? チェックボックスやラジオボタンも同じです。アイテムリスナーというクラスを用意して、その中にある「イベントで呼び出されるメソッド」に処理を用意しておき、このクラスのインスタンスを部品に組み込めばいいわけです。

ここでは「ClickItem」というのが、自作するイベントリスナーのクラスになります。ソースコードを見ると、

ClickItem il = new ClickItem();

こうやって、clickItemというクラスのインスタンスを作ってますね。そして、

cb1.addItemListener(il);

こうやって、部品に「addItemListener」というメソッドでインスタンスを組み込んでいます。まあクラスやメソッドの名前は違いますが、基本的な流れはアクションリスナーの時と同じですね。

さて、肝心のアイテムリスナーである「ClickItem」クラスですが、これは以下のリストのようになっています。

わかりますか? アクションリスナーが、implements ActionListenerしてactionPerformedメソッドに処理を書いたのと同様に、アイテムリスナーはimplements ItemListenerしてitemStateChangedメソッドに処理を書きます。細かい部分は違っても、全体の仕組みはだいたい同じことがわかってきますね。

ここでは、getStateというメソッドで各ボタンのON/OFF状態を調べています。これは真偽値というやつで、ONならばtrue、OFFならばfalseを返します。また反対にON/OFF状態を変更する「setState」というメソッドもあります。例えば「cb1.setState(true)」なんてやれば、cb1をONにできるわけですね。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※LtemListenerの定義

	class ClickItem implements ItemListener {
	
		public void itemStateChanged(ItemEvent ev){
			……ここに処理を書く……
		}
	
	}
※関連コンテンツ

「初心者のためのJava SEプログラミング入門」に戻る