Java ソースコード (ファイル名はRadioBtn.java)
ラジオボタンを使用するサンプル。
//File名 RadioBtn.java //このプログラムは、3つのラジオボタンのいずれかをクリックすると //ウィンドウ内に選択したボタンの文字列が表示されます。 //下の3行はGUIコンポーネントSwingを使うための「お約束」 import javax.swing.*; import java.awt.event.*; import java.awt.*; //ボタンクリックなどのEvent処理を行うGUIプログラムの場合は //extends JFrame implements ActionListener が必要 public class RadioBtn extends JFrame implements ActionListener{ //このクラスのフィールドとして、JLabel型のmsgという名前で //フィールドを宣言します。ここでは宣言のみしています。 //このmsgは、クラス内のどのメソッドの中でも使用することが //できます。ただし、この時点では宣言のみで中身はありません。 //一方、メソッド内で作られた変数は、その //メソッド内でしか使えません。 JLabel msg; //mainメソッドは、最初に実行されるメソッドです。 public static void main(String[] args){ // 自分自身を作成 //自分自身をcheckedBtnという名前のRadioBtn型変数として //生成します。自分自身が存在しなければ何もできません。 RadioBtn checkedBtn = new RadioBtn(); //終了処理を追加しておきます。 //これが無いと、クローズしたときにメモリ内にプロセスが //残ってしまい、メモリやリソースが減少してしまいます。 //「お約束」と考えましょう。 checkedBtn.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){System.exit(0);} }); //自分自身(checkedBtn)の表示される位置(座標300,300)と大きさ(200X200) //をsetBoundsメソッドを使って指定します。 checkedBtn.setBounds( 300, 300, 200, 200); // 実際に画面に表示する //画面に表示を行うメソッドsetVisibleを呼び出します。 checkedBtn.setVisible(true); //あとはラジオボタンがクリックされるまで、何も行われません。 //何らかのEvent(ボタンのクリックなど)が発生するまで //待機している状態です。mainメソッドはここまで。 } //クラス名(RadioBtn)と同じメソッドは、コンストラクタです。 //このクラスのオブジェクトが生成されるとき最初に //必ず行う処理があれば、この中に書きます。 RadioBtn(){ //JLabel型フィールドをpromptという名前で生成します。 //その際、文字列として「ラジオボタンを選んでクリック」が登録されます。 JLabel prompt = new JLabel("ラジオボタンを選んでクリック"); //JLabel型インスタンス //クラスのフィールドとして宣言されているmsgにオブジェクトを //割り当てます。空の文字列が入っています。 msg = new JLabel(""); //JRadioButton型変数radio1を作ります。Carという文字が //ラジオボタンの横に表示されます。 JRadioButton radio1 = new JRadioButton("Car"); //このラジオボタンがクリックされたときに処理が行われるよう //登録します。具体的には自分自身(this)のactionPerformed() //メソッドが実行されます。 //actionPerformed()メソッドの内容は、下のほうで定義されています。 radio1.addActionListener(this); //このラジオボタンがクリックされたときには、ActionCommandとして //文字列Carが設定されます。 radio1.setActionCommand("Car"); //2番目のラジオボタンを生成します。このボタンは最初に選択状態に //なります。 JRadioButton radio2 = new JRadioButton("House", true); radio2.addActionListener(this); radio2.setActionCommand("House"); JRadioButton radio3 = new JRadioButton("Computer"); radio3.addActionListener(this); radio3.setActionCommand("Computer"); //3つのボタンをグループ化します。これによりどれかひとつだけ //ボタンがチェック状態になります。グループ化しないとそれぞれの //ボタンは独立してチェックすることができます。 ButtonGroup group = new ButtonGroup(); group.add(radio1); group.add(radio2); group.add(radio3); //5行1列のグリッドレイアウト配置を行います。 GridLayout layout = new GridLayout(5,1); //コンポーネント間の隙間を垂直方向に3ピクセル空けます。 layout.setVgap(3); //次のようにレイアウト設定と隙間の設定を同時に行う //こともできます。 //GridLayout(int rows,int cols,int hgap,int vgap) //ボタンなどの部品はContentPainという板に載せるという //考え方をします。ContentPainはgetContentPane()により取得し、 //それにadd()メソッドで部品を加えていきます。 //配置の設定を実際に適用します。 getContentPane().setLayout(layout); //prompt、ラジオボタン、msgを実際に配置します。 getContentPane().add(prompt); getContentPane().add(radio1); getContentPane().add(radio2); getContentPane().add(radio3); getContentPane().add(msg); } //ラジオボタンがクリックされたときに、このメソッドが呼び出されます。 public void actionPerformed(ActionEvent e){ //JLabel型フィールドmsgに文字列を設定します。 //e.getActionCommand()は、このメソッドを呼び出したときに設定 //されているActionCommand文字列を返します。 msg.setText("Selected is " + e.getActionCommand()); } }
下の画像は、実行時の画像です。
Kom., 2011