CheckboxクラスをCheckboxGroupクラスでグループ化すると、常に一つだけが選択された状態となるラジオボタンになります。
CheckboxGroup.getSelectedCheckboxメソッドでグループ内でチェックONのCheckboxを取得します。
package MyPackage1; import java.awt.*; import java.awt.event.*; public class CheckboxGroupSample { /* * エントリポイント */ public static void main(String args[]){ new CheckboxGroupSample(); } Frame frm; Panel pnl1; CheckboxGroup chkGroup; Checkbox chk1; Checkbox chk2; Checkbox chk3; Panel pnl2; Label lbl1; /* * コンストラクタ */ public CheckboxGroupSample(){ //フレームを作成します。 frm = new Frame("CheckboxGroupSample"); //フレームのサイズを指定します。 frm.setSize(300,300); //無名クラスを使用してフレームを閉じます。 frm.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent ev){ System.exit(0); } }); //チェックボックスグループを作成します。 chkGroup = new CheckboxGroup(); //チェックボックスを作成します。 chk1 = new Checkbox("Blue"); chk1.setCheckboxGroup(chkGroup); chk1.setState(false); chk2 = new Checkbox("Red",chkGroup,false); chk3 = new Checkbox("Green",chkGroup,false); //チェックボックスにItemListenerを追加します。 chk1.addItemListener(new chkItemAdapter()); chk2.addItemListener(new chkItemAdapter()); chk3.addItemListener(new chkItemAdapter()); //パネルを作成します。 pnl1 = new Panel(); pnl1.setLayout(new GridLayout(1,3)); //パネルにコンポーネントを追加します。 pnl1.add(chk1); pnl1.add(chk2); pnl1.add(chk3); //ラベルを作成します。 lbl1 = new Label(); //フレームにコンポーネントを追加します。 frm.setLayout(new GridLayout(2,1)); frm.add(pnl1); frm.add(lbl1); //フレームを表示します。 frm.setVisible(true); } /* * chkItemListener */ private class chkItemAdapter implements ItemListener{ @Override public void itemStateChanged(ItemEvent arg0) { Checkbox chkSelected = chkGroup.getSelectedCheckbox(); if (chkSelected != null ){ lbl1.setText("Selected:" + chkSelected.getLabel()); } } } }
0 件のコメント:
コメントを投稿