トグルボタン


選択ボタン

トグルボタンは、選択/非選択状態を持つボタンの基本クラスです
JButton は単純に「押す」という機能だけに焦点を当てられていましたが
AbstractButton クラスは、選択/非選択状態を制御する機能も提供しています
トグルボタンは、これを実装する Swing コンポーネントの基本クラスとなります

トグルボタンは javax.swing.JToggleButton クラスで実装されています
このクラスは AbstractButton を継承しています
java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.AbstractButton
                          |
                          +--javax.swing.JToggleButton

public class JToggleButton 
	extends AbstractButton implements Accessible
このクラスは、次のようなコンストラクタを保有しています

public JToggleButton()
public JToggleButton(Icon icon)
public JToggleButton(Icon icon , boolean selected)
public JToggleButton(String text)
public JToggleButton(String text , boolean selected)
public JToggleButton(Action a)
public JToggleButton(String text , Icon icon)
public JToggleButton(String text , Icon icon , boolean selected)

icon にはアイコンを、selected には選択状態を
text には表示されるテキストを、a にはプロパティ情報を格納したアクションを指定します
import java.awt.*;
import javax.swing.*;

public class Test extends JApplet {
	public void init() {
		Icon icon1 = new ImageIcon("Icon1.jpg");
		Icon icon2 = new ImageIcon("Icon2.jpg");
		JToggleButton button1 = new JToggleButton(icon1);
		JToggleButton button2 = new JToggleButton(icon2);

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


このプログラムは、2つのアイコン付きトグルボタンを生成します
上の図の左のボタンは非選択状態、右は選択状態を表しています

選択状態を得るには AbstractButton.isSelected() メソッドを
選択状態を設定するには AbstractButton.setSelected() を使います

public boolean isSelected()
public void setSelected(boolean b)

isSelected() は選択状態を示す論理値を返します
b には、選択状態を示す論理地を指定します

さらに、AbstractButton は選択状態に関連した
アイコンの自動切換え機能も提供しています
選択状態のアイコンの設定は AbstractButton.setSelectedIcon()
取得は AbstractButton.getSelectedIcon() メソッドを使います

public void setSelectedIcon(Icon selectedIcon)
public Icon getSelectedIcon()

selectedIcon には選択状態に表示するアイコンを設定します
さらに、無効かつ選択状態のアイコンを設定することもできます
これは AbstractButton.setDisabledSelectedIcon() で設定し
AbstractButton.getDisabledSelectedIcon() で取得します

同様に、ロールオーバーで選択状態のアイコンも指定できます
これは AbstractButton.setRolloverSelectedIcon() で設定し
AbstractButton.getRolloverSelectedIcon() で取得できます

public void setDisabledSelectedIcon(Icon disabledSelectedIcon)
public Icon getDisabledSelectedIcon()
public void setRolloverSelectedIcon(Icon rolloverSelectedIcon)
public Icon getRolloverSelectedIcon()

disabledSelectedIcon には無効かつ選択状態で表示するアイコンを
rolloverSelectedIcon にはロールオーバーかつ選択状態で表示するアイコンを指定します
import java.awt.*;
import javax.swing.*;

public class Test extends JApplet {
	public void init() {
		Icon icon1 = new ImageIcon("Icon1.jpg");
		Icon icon2 = new ImageIcon("Icon2.jpg");
		JToggleButton button = new JToggleButton(icon1);
		button.setSelectedIcon(icon2);

		getContentPane().add(button);
	}
}
このプログラムのボタンを選択状態にするとアイコンが変化します



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