Swingの表示用部品

  1. 表示用部品
    1. 部品
       ボタン、ラジオボタン、トグルボタン、チェックボックス、ラベル、など主にボタンと状態の表示や設定に利用される部品を紹介します。Jbuilderのツールバーで表示される、最初の5個の部品です。

       

    2. 利用目的
       ボタンはクリックにより、実行を開始する用途によく利用されます。ラジオボタンはグループに付加すると、そのグループでは押されたボタンのみがオンになり、他のボタンはオフ状態になります。トグルボタンは、AWTにはないボタンで、オンとオフの状態が切り替わり表示されます。チェックボタンは、クリックで状態が反転しますが、ラジオボタンと異なり、複数選択をする場合によく利用されます。
       
  2. プログラム
    1. 部品のクラス定義
      チェックボックスを二つ、トグルボタンとラベルを一つ、ラジオボタンを二つ生成します。最後のButtonGroup はラジオボタンをグループ化するクラスで、表示されません。

      private JCheckBox jCheckBox1 = new JCheckBox();
      private JCheckBox jCheckBox2 = new JCheckBox();
      private JToggleButton jToggleButton1 = new JToggleButton();
      private JLabel jLabel1 = new JLabel();
      private JRadioButton jRadio1 = new JRadioButton();
      private JRadioButton jRadio2 = new JRadioButton();
      private ButtonGroup buttonGroup1 = new ButtonGroup();

    2. 属性設定
      setTextで部品の名前を設定します。setBoundsは部品の位置とサイズを設定します。各部品で状態変化のイベントで、指定したメソッドを呼び出すため、addItemListener で匿名クラスを利用しています。ここで、itemStateChanged に対応するメソッドを定義します。
          jCheckBox1.setText("jCheckBox1");
          jCheckBox1.setBounds(new Rectangle(48, 44, 90, 25));
          jCheckBox1.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(ItemEvent e) {
              jCheckBox1_itemStateChanged(e);
            }
          });
          
          jToggleButton1.setText("jToggleButton1");
          jToggleButton1.setBounds(new Rectangle(36, 122, 121, 25));
          jToggleButton1.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(ItemEvent e) {
              jToggleButton1_itemStateChanged(e);
            }
          });
          
          jLabel1.setBackground(Color.white);
          jLabel1.setText("jLabel1");   
          jLabel1.setBounds(new Rectangle(47, 165, 113, 29));
      
          jRadio1.setText("jRadio1");
          jRadio1.setBounds(new Rectangle(188, 49, 83, 23));
          jRadio1.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(ItemEvent e) {
              jRadio1_itemStateChanged(e);
            }
          });
          jRadio2.setText("jRadio2");
          jRadio2.setBounds(new Rectangle(183, 78, 80, 29));
    3. 配置
       ここでは、自動配置を停止し、していした位置に配置します。buttonGroup1.add(jRadio1); でラジオボタンをグループ化します。同じグループでは、一つのボタンのみがオンになります。
          this.setLayout(null);
        this.add(jCheckBox1, null);
          this.add(jLabel1, null);
          this.add(jToggleButton1, null);
          this.add(jCheckBox2, null);
          this.add(jRadio1, null);
          this.add(jRadio2, null);
          buttonGroup1.add(jRadio1);
          buttonGroup1.add(jRadio2);

    4. 処理
      ここでは、チェックボックス1,ラジオボタン1、トグルボタン1が押されたとき、状態変化をラベルに表示します。チェックボックス1でのイベント処理は以下のようです。isSelected() で状態を知ることができます。

        void jCheckBox1_itemStateChanged(ItemEvent e) {
          if(jCheckBox1.isSelected()){
            jLabel1.setText("checked");
          }
          else{
            jLabel1.setText("notChecked");
          }
        }
    5. アプレットの呼び出し
      ラジオボタンは1方のみがオンになります。チェックボックスは両方がチェック状態になります。
      トグルボタンは、状態が反転表示されます。チェックボックス1,ラジオボタン2についてはイベント処理をしていないので、ラベルへの表示はありません。