Javaプログラミング/Javaプログラミング関連情報

Swingコンポーネントを使う(3ページ目)

JavaFXではSwingのコンポーネントがGUIの基本部品となります。コンポーネントの使い方についてチェックしていきましょう。

執筆者:掌田 津耶乃

グループボタンの利用


では、その他のコンポーネントも使ってみましょう。GUI関係の中でもっともよく用いられるのは、チェックボックスとラジオボタンでしょう。

チェックボックスは、単に「CheckBox」コンポーネントを配置するだけです。選択されているかどうかは、この「selected」アトリビュート(真偽値)の値をチェックすればわかります。これは、実際に使ってみればすぐに利用の仕方はわかってくるでしょう。

問題は、ラジオボタンです。ラジオボタンは、いくつかのボタンをグループ化して機能しなければいけません。Swingの場合、ボタングループを管理する専用クラスが用意されていましたね。JavaFXでもこれは同じです。「ToggleGroup」というクラスを利用し、グループに加えるコンポーネントの「toggleGroup」アトリビュートにこれを登録します。ラジオボタンに限らず、複数のボタンをグループ化して利用できるコンポーネントには、すべてこのアトリビュートがついています。(逆にいえば、これがないものはグループ化して利用できません)

package javafxapp;

import javafx.ext.swing.*;
import javafx.scene.*;
import javafx.scene.paint.*;
  
SwingFrame {
  var label:Label;
  var radio1:RadioButton;
  var radio2:RadioButton;
  var group = ToggleGroup {};
  
  title: "MyApplication"
  width: 200
  height: 120
  closeAction: function() {
    java.lang.System.exit(0);
  }
  visible: true

  menus: []

  content: BorderPanel {
    top: label = Label {
      text: "please type!"
      font: Font {
          name: "Serif"
          size: 16
          style: FontStyle.BOLD
      }
      foreground: Color.DARKBLUE
    }
    center: GridPanel {
        rows: 2
        columns: 1
        content: [
          RadioButton {
            text: "Male"
            toggleGroup: group
            selected: true
          },
          RadioButton {
            text: "Fimale"
            toggleGroup: group
          }
        ]

    }
    bottom: Button {
      text: "Click"
      action: function(){
            label.text = "you typed '{group.getSelection().text}'!";
          }

    }
  }
}

ラジオボタンをクリックすると自動的に切り替わる。プッシュボタンを押すと、選択したボタン名が表示される。

ここでは、2つのラジオボタンをグループ化してみました。RadioButtonのアトリビュートを見ると、「toggleGroup」に、あらかじめ変数に用意しておいたToggleGroupが設定されているのがわかりますね。また1つ目のボタンでは、「selected」というアトリビュートが設定されています。

また、ボタンのactionでは、ToggleGroupの「getSelection」というものを使って、選択されているボタンを調べ、そのtextを取り出しています。このgetSelectionは、グループ化できるボタン類のスーパークラスであるSelectableButtonというクラスのインスタンスが保管されています。そこからtextなどの値を取り出して、選択されたボタンに関する情報を得ることができます。
【編集部おすすめの購入サイト】
楽天市場で Java 関連の書籍を見るAmazon で Java 関連の書籍を見る
  • 前のページへ
  • 1
  • 2
  • 3
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます