ラジオボタン
排他的選択ボタン
複数の選択ボタンのうち、常にひとつのボタンのみが選択状態になることができ
2つ以上のボタンが選択状態にならない構造を実装する場合
常識的に考えて、ラジオボタンを使うのが最も一般的でしょう
しかし、Swing において、ラジオボタンもチェックボックスとほとんど同じです
見た目は異なっていますが、機能に大きな違いはありません
デフォルトで Swing のラジオボタンは排他制御を行わないのです
ラジオボタンは javax.swing.JRadioButton クラスで実装されます
java.lang.Object
|
+--java.awt.Component
|
+--java.awt.Container
|
+--javax.swing.JComponent
|
+--javax.swing.AbstractButton
|
+--javax.swing.JToggleButton
|
+--javax.swing.JRadioButton
public class JRadioButton
extends JToggleButton implements Accessible
このクラスのコンストラクタのシグネチャは
JToggleButton() コンストラクタと同じです
public JRadioButton()
public JRadioButton(Icon icon)
public JRadioButton(Icon icon , boolean selected)
public JRadioButton(String text)
public JRadioButton(String text , boolean selected)
public JRadioButton(Action a)
public JRadioButton(String text , Icon icon)
public JRadioButton(String text , Icon icon , boolean selected)
icon にはアイコンを、selected には選択状態を
text には表示されるテキストを、a にはプロパティ情報を格納したアクションを指定します
import java.awt.*;
import javax.swing.*;
public class Test extends JApplet {
public void init() {
JRadioButton button1 = new JRadioButton("Forget me Not");
JRadioButton button2 = new JRadioButton("Kitty on your lap");
getContentPane().setLayout(new FlowLayout());
getContentPane().add(button1);
getContentPane().add(button2);
}
}
このプログラムは、二つのラジオボタンを生成しています
通常、ラジオボタンとは排他的に動作するものですが
このプログラムのボタンは、互いに選択を干渉しません
排他的選択処理を行いたい場合は、ボタングループを使う必要があります
これについては、次の章で詳しく解説します