ボタングループ


ボタン選択の排他制御

ボタングループは、Swing のボタンの選択機能を排他的に制御するサービスです
これを使えば、特定のボタンのグループを作成し
同一グループ内のボタンでは、常に1つのボタンだけが選択状態になるようになります

ボタングループは javax.swing.ButtonGroup クラスを使います
ボタングループ自体はコンポーネントではないので注意してください

public class ButtonGroup extends Object implements Serializable

このクラスのコンストラクタは、デフォルトコンストラクタのみです
通常、ボタンのグループ化はパネルのようなコンテナにまとめるものでしたが
Swing は、排他制御用クラスに登録することで実現する、軽量な設計になっています

ボタングループにボタンを登録するには ButtonGroup.add() メソッドを
解除するには ButtonGroup.remove() メソッドを使います

public void add(AbstractButton b)
public void remove(AbstractButton b)

こうすることで、ボタンをグループとして扱うことができます
import java.awt.*;
import javax.swing.*;

public class Test extends JApplet {
	public void init() {
		ButtonGroup group = new ButtonGroup();
		JRadioButton button1 = new JRadioButton("エアリス");
		JRadioButton button2 = new JRadioButton("香澄");
		JCheckBox button3 = new JCheckBox("沙耶");
		JToggleButton button4 = new JToggleButton("こより");

		group.add(button1);
		group.add(button2);
		group.add(button3);
		group.add(button4);

		getContentPane().setLayout(new FlowLayout());
		getContentPane().add(button1);
		getContentPane().add(button2);
		getContentPane().add(button3);
		getContentPane().add(button4);
	}
}


このプログラムは、ラジオボタンやチェックボックス、トグルボタンなどを作成し
これらの選択可能ボタンを同一のグループとして登録しています
その結果、これらのボタンのうち、選択できるのは常に一つまでです
何らかの項目を選択すると、他の項目は全てが無効状態に移行します



前のページへ戻る次のページへ