ラジオボタンの配置とレイアウトマネージャ

ファイルはzipフォルダに納められています。
解凍ソフト(Aladdin Expander等)を使って解凍して下さい。

ラジオボタンの作成

ラジオボタンは、JRadioButtonクラスをインスタンス化して作成します。
コンストラクタの引数に文字列を与えると、ボタンの脇に表示するキャプションになります。

JRadioButton blackButton; //オブジェクトの宣言
blackButton = new JRadioButton("黒"); //インスタンス化

作成したボタンをパネルに載せ、リスナをimplementsしてactionPerformedメソッドにボタンが押された時の処理を書きます。
ボタンの時と同様です。
ラジオボタンは、グループの中で1つしか選択出来ません。
グループが複数有れば、それぞれのグループで1つずつ選択出来ます。
此のグループを決める為のクラスがButtonGroupクラスです。
此をインスタンス化して、ラジオボタンをグループに追加します。

ButtonGroup group; //オブジェクトの宣言
group.add(blackButton);

レイアウトマネージャ

部品が段々増えて来ました。
此等の部品をレイアウトしましょう。
Javaでは、画面のサイズに応じて、自動的にレイアウトする方法が5つ用意されています。
此等のマネージャを使わない方法が有ります。

@レイアウトマネージャを使わない 部品の1つ1つについて、位置の座標とサイズを指定します。
AFlowLayout 部品を画面の左から順番に中央揃えで配置します。
1行に入り切らない時は、2行目に配置されます。
BBorderLayout 画面を「上(NOUTH)」「下(SOUTH)」「左(WEST)」「右(EAST)」「中央(CENTER)」の5つの部分に分けて、どの部分に配置したいのかを指定します。
CGridLayout 画面を表の様に「縦」「横」に区切って、何処に配置したいのかを指定します。
DBoxLayout 縦1列に、又は横1列に配置します。
EGridBagLayout 「GridLayout」と同様、表の様に「縦」「横」に分けますが、部品が各セルを跨いでも良く、又、「列幅」「行幅」は、列や行毎に異なる指定が出来ます。

BorderLayout

各領域の大きさは、「NOUTH」「SOUTH」「WEST」「EAST」に配置される部品に必要なサイズの領域が確保され、残りが全て「CENTER」になります。
各領域の中を、更に色々なマネージャを利用して分けても使えます。
此処では、「NOUTH」に左右ボタンを割り当て、「SOUTH」に色選択のラジオボタンを割り当て、「CENTER」に目玉を書く事にします。
それぞれの領域に異なるパネルを貼り付け、パネル上に部品を載せたり、目玉を描いたりします。

ラジオボタンの動作

ラジオボタンが押されたら目玉データの色情報を、ボタンが押された色で書き換え、目玉を描くパネル「myJPanel」に対して再描画を要求します。

独自クラスの意義

ボタンやラジオボタン、パネル等の部品は、継承して独自にクラスを作る事で、それぞれの処理を部品化出来ます。
ボタンの種類を変えたい時やボタンの動作を変えたい時等、クラス毎差し替える事で、周りへの影響を最小限に留められます。

ソース ダウンロード
MedamaSwingColor.java Medama12.zip MedamaSwingColor.html
MedamaSwingColorA.java MedamaSwingColorA.html

戻る