プログラミング応用b 第12回 『GUIその3 (AWT/Swingによる応用的イベント処理)』


【ラジオボタンとイベント処理の例】

 Swing版ラジオボタンの使用例を示す。


List 2-2 SwingJRadioButton.java

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class SwingJRadioButton {
    
    public static void main( String [ ] args ) {

        JFrame f = new JFrame( "radio button sample" );
        f.setSize(350, 80);
        Container c = f.getContentPane( );
        c.setLayout( new FlowLayout( ) );
        
        JRadioButton r1 = new JRadioButton("学生");
        JRadioButton r2 = new JRadioButton("教員");
        JRadioButton r3 = new JRadioButton("事務職員");

        // ラジオボタングループを作成する。
        ButtonGroup rbGroup = new ButtonGroup();
        rbGroup.add(r1); // ラジオボタングループにラジオボタン1を登録
        rbGroup.add(r2); // ラジオボタングループにラジオボタン1を登録
        rbGroup.add(r3); // ラジオボタングループにラジオボタン1を登録
        
        // パネルにラジオボタンを登録する。
        JPanel p = new JPanel();
        p.add(r1);
        p.add(r2);
        p.add(r3);
        
        // ボタンを設置する。
        JButton b = new JButton( "OK" );
        p.add( b );
        // パネルをコンテントペインに登録する。
        c.add(p);
        
        // 匿名リスナを定義し,オブジェクトを生成してボタンb1に登録する
        b.addActionListener(  
          new ActionListener() {
            public void actionPerformed( ActionEvent e ) {
                if( r1.isSelected() ) System.out.println( "ラジオボタン1が選択された" );
                if( r2.isSelected() ) System.out.println( "ラジオボタン2が選択された" );
                if( r3.isSelected() ) System.out.println( "ラジオボタン3が選択された" );
            }
          } 
        );
 
        // ウィンドウを閉じたときにプログラムも終了するように設定する。
        f.addWindowListener(
            new WindowAdapter( ) {
                public void windowClosing( WindowEvent e ) {
                    System.exit( 0 );
                }
            }
        );
        f.setVisible( true );
        
    }
    
}

次に進む