■JCheckBoxクラス
コンストラクター
コンストラクタ | 引数 |
---|---|
JCheckBox() | なし |
JCheckBox(Icon icon) | 画像オブジェクト |
JCheckBox(Icon icon , boolean state) | 画像オブジェクト,初期チェック状態 |
JCheckBox(String text) | 表示テキスト |
JCheckBox(String text , boolean state) | 表示テキスト,初期チェック状態 |
JCheckBox(String text , Icon icon) | 表示テキスト,画像オブジェクト |
JCheckBox(String text , Icon icon , boolean state) | 表示テキスト,画像オブジェクト,初期チェック状態 |
表示文字列 :チェックボックスの横に表示する文字列を設定
初期チェック状態:true=チェック済み false=チェックしていない
画像オブジェクト :チェックのデザイン
がそれぞれ引数をつかって設定されたチェックボックスを生成する
メソッド
メソッド | 返却値 | 引数 | 説明 |
---|---|---|---|
setSelected(boolean check) | void | チェック状態 | チェックボックスのチェック状態を変更 |
setRolloverIcon(Icon rolloverIcon) | void | 画像オブジェクト | マウスが部品上に乗っているときの画像を設定 |
setSelectedIcon(Icon selectedIcon) | void | 画像オブジェクト | 選択されたときの画像を設定 |
setPressedIcon(Icon pressedIcon) | void | 画像オブジェクト | 部品が押されたときの画像を設定 |
setDisabledIcon(Icon disabledIcon) | void | 画像オブジェクト | 部品が無効になったときの画像を設定 |
isSelected() | boolean | なし | チェック状態を取得 |
ちなみにイベントはItemListenerです
■JRadioButton
コンストラクター
コンストラクタ | 引数 |
---|---|
JRadioButton() | なし |
JRadioButton(Icon icon) | 画像オブジェクト |
JRadioButton(Icon icon , boolean state) | 画像オブジェクト,初期チェック状態 |
JRadioButton(String text) | 表示テキスト |
JRadioButton(String text , boolean state) | 表示テキスト,初期チェック状態 |
JRadioButton(String text , Icon icon) | 表示テキスト,画像オブジェクト |
JRadioButton(String text , Icon icon , boolean state) | 表示テキスト,画像オブジェクト,初期チェック状態 |
メソッド
メソッド | 返却値 | 引数 | 説明 |
---|---|---|---|
setSelected(boolean check) | void | チェック状態 | ラジオボタンのチェック状態を変更 |
setRolloverIcon(Icon rolloverIcon) | void | 画像オブジェクト | マウスが部品上に乗っているときの画像を設定 |
setSelectedIcon(Icon selectedIcon) | void | 画像オブジェクト | 選択されたときの画像を設定 |
setPressedIcon(Icon pressedIcon) | void | 画像オブジェクト | 部品が押されたときの画像を設定 |
setDisabledIcon(Icon disabledIcon) | void | 画像オブジェクト | 部品が無効になったときの画像を設定 |
isSelected() | boolean | なし | チェック状態を取得 |
チェックボックス :選択項目の中からいくつかチェックをいれる
ラジオボタン :選択項目の中から1つチェックを入れる
この程度しか違いがありませんので同じ機能が使えるわけです
■ButtonGroup
前述のようにラジオボタンは単体では役目を果たせません。
そこで複数のラジオボタンを「ButtonGroupクラス」でグループ化します
登録系の操作はレイアウト部品とほぼ変わりませんがアクションコマンドを登録してActionEventが発生させれるようにする
イベント系の操作はButtonModelクラスを使って選択されているラジオボタンのイベント処理を実行する
■サンプルプログラム
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GuiChecker extends JFrame {
private JLabel text;
private JCheckBox bigText;
private JCheckBox redText;
private ButtonGroup radio;
private final Font bf = new Font("serif",Font.BOLD,18);
private final Color [] color = {Color.RED,Color.BLUE,Color.WHITE,Color.YELLOW};
public static void main(String [] gui) { new GuiChecker(); }
public GuiChecker(){
setTitle("JavaでGUIその6");
setSize(700,150);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new BorderLayout());
text = new JLabel("チェックボックスでこのテキストが変化します");
bigText = new JCheckBox("太字");
redText = new JCheckBox("赤字");
radio = new ButtonGroup();
JSplitPane split = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
JPanel panel = new JPanel();
JPanel body = new JPanel();
JRadioButton jrb = new JRadioButton("赤");
jrb.setActionCommand("0");
radio.add(jrb);
panel.add(jrb);
jrb = new JRadioButton("青");
jrb.setActionCommand("1");
radio.add(jrb);
panel.add(jrb);
jrb = new JRadioButton("白");
jrb.setActionCommand("2");
radio.add(jrb);
panel.add(jrb);
jrb = new JRadioButton("黄");
jrb.setActionCommand("3");
radio.add(jrb);
panel.add(jrb);
JButton btn = new JButton("START");
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
ButtonModel model = radio.getSelection();
if(model==null) return;
int index = Integer.parseInt(model.getActionCommand());
text.setBackground(color[index]);
if(index==0) text.setForeground(Color.WHITE);
}
});
panel.add(btn);
bigText.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e){
if(!bigText.isSelected()) return;
text.setForeground(null);
text.setFont(bf);
redText.setSelected(false);
}
});
redText.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e){
text.setFont(null);
text.setForeground(Color.RED);
if(!redText.isSelected()) bigText.setSelected(false);
}
});
text.setOpaque(true);
body.add(bigText);
body.add(redText);
body.add(text);
split.add(panel,JSplitPane.LEFT);
split.add(body,JSplitPane.RIGHT);
add(split,BorderLayout.CENTER);
setVisible(true);
}
}
実行結果
ラジオボタンで背景色、チェックボックスでフォントや文字色が変わるプログラムにしてみました
次回あたりでダイアログかメニュのどちらかをやろうと思います