JRadioButtonの選択に応じてイベントを起こす。
今回は、JRadioButtonの選択とイベントをリンクさせたコードを書く。
import javax.swing.ButtonGroup; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; //JRadioButtonが選択された時にイベントを起こすために“ChangeListener”をimplementsする public class RadioTest extends JFrame implements ChangeListener { JRadioButton [] radio; JPanel pane; JLabel label; //JRadioButtonが選択された時のイベント public void stateChanged(ChangeEvent e) { if (radio[0].isSelected()) { label.setText("Test1"); } else if (radio[1].isSelected()) { label.setText("Test2"); } } RadioTest () { radio = new JRadioButton [2]; ButtonGroup group = new ButtonGroup(); label = new JLabel ("Test1"); radio[0] = new JRadioButton ("Test1"); radio[1] = new JRadioButton ("Test2"); group.add(radio[0]); group.add(radio[1]); //JRadioButtonが選択された時にイベントを起こすためのコード radio[0].addChangeListener (this); radio[1].addChangeListener (this); radio[0].setSelected(true); pane = new JPanel (); pane.setLayout(null); radio[0].setBounds(20,10, 80, 30); radio[1].setBounds (20, 40, 80, 30); label.setBounds(30, 70, 80, 30); pane.add(radio[0]); pane.add(radio[1]); pane.add(label); getContentPane().add(pane); } public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ RadioTest frame = new RadioTest(); frame.setBounds(100, 100, 70, 150); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
JRadioButtonの選択でイベントを起こすためには、次の3つが必要。
(1) ChangeListenerの実装
(2) JRadioButtonをChangeListenerに加える。(addChangeListener)
(3) "public void stateChanged(ChangeEvent e)"の設定