2.4 チェックボックス(JCheckBox)の使い方
本節では、チェックボックス(JCheckBox)の使い方を見ていきます。
チェックボックスとは、選択・選択解除できる項目を生成するGUI部品です。あらゆるソフトウェアで登場するGUI部品なので、言うまでもないかもしれません。
1.チェックボックスの設置
まずはチェックボックスを設置しましょう。前回作成したプロジェクト及びJFrameフォームを想定して説明していきます。
「パレット」ウィンドウの「Swingコントロール」タブから「チェックボックス」をクリックし、「JFrame」フォームの上でもう一度クリックして配置します。ここではラベルの下に配置しています。
チェックボックスを右クリックして、[テキストを編集]を選択します。
「1回のクリックで2回クリックしたことにする」といったようなテキストを入力します。今回、このテキストのとおりの機能を実装していきます。
チェックボックスを右クリックして、[変数名を変更]を選択します。
今回は「checkDoubleClick」という名前にしました。ダブルクリック(DoubleClick)の機能を持ったチェックボックス(check)という意味です。
試しに実行するとこのようになります(本節からは省略していきますが、必要に応じてプロパティからGUI部品の外観を変更しています)。一度クリックすると選択され、もう一度クリックすると選択が解除されます。
2.機能の実装
次は機能を実装していきましょう。既に想像がついているかもしれませんが、チェックボックスが選択されているとき、カウンターの数字が2ずつ増えていく機能を持たせます。ボタンをダブルクリックするか、[ソース]タブをクリックして、ソース編集画面に移ります。
※チェックボックスをダブルクリックしないように注意!
ボタンの機能を記述する領域で、チェックボックスが選択されているかどうかの判定を行います。判定には、「if文」と呼ばれる制御文を用います。
1 2 3 4 5 6 7 |
if ( 条件式A ) { //条件式Aを満たしていたら、ここが実行される } else if ( 条件式B ) { //条件式Aを満たさず、条件式Bを満たしていたら、ここが実行される } else { //条件式Aも条件式Bも満たしていない場合、ここが実行される } |
if文は、if (条件式A) { } といった形で記述され、条件式Aを満たしているとき、中括弧{ }の処理が実行されます。条件式を満たしていない場合は、次のelse if(条件式B)へ移り、条件式Bを満たしているか否かの判定を行います。else文を用いることで、いずれの条件も満たさなかった場合の処理を記述することができます。条件式には様々なものがありますが、詳しいことは第5章[文法の補足]にて説明することにして、ここでは次に進みます。
チェックボックスが選択されているか否かを判定する条件式として、「isSelected()」メソッドを用いて、次のように記述します。
1 2 3 4 5 |
if ([チェックボックス名].isSelected()) { //チェックボックスが選択されている場合、ここを実行 } else { //チェックボックスが選択されていない場合、ここを実行 } |
このように、「is~」で始まるメソッドは、答えが「true(真)」か「false(偽)」に限られるので、if文の条件式に利用することができます。少し脱線しましたが、実際には次のソースコードを記述します。
1 2 3 4 5 6 |
//チェックボックスの判定 if (checkDoubleClick.isSelected()) { count += 2; } else { count += 1; } |
もしチェックボックス(checkDoubleClick)が選択されていたら、押した回数を数えるcount変数に2を加算し、そうでない場合は1を加算する命令です。英文で解釈すると割とそのままなことを書いているので、理解しやすいと思います。
実行してみましょう。チェックボックスを選択した状態だと、ボタンをクリックしたときに数字が2ずつ増えていきます。
(2013年11月13日 加納徹)