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

Swingコンポーネントを使う

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

執筆者:掌田 津耶乃

コンポーネントとレイアウト


では、Swingコンポーネントを使ってみましょう。SwingFrameのcontentには、1つのコンポーネントしか配置できません。ということは、いくつかのコンポーネントを組み込むためには、コンテナとなる部品が必要になる、ということですね。そう、旧バージョンでも登場した「パネル」です。

このパネル関係は、新バージョンでもほとんど変わりはありません。「BorderPanel」「FlowPanel」「GridPanel」といったものもそのままですし、使い方もほぼ同じです。ですから、レイアウト関係についてはほとんど新たに覚えなおす必要はないでしょう。

package javafxapp;

import javafx.ext.swing.*;
import javafx.scene.*;
import javax.swing.*;

SwingFrame {
  title: "MyApplication"
  width: 200
  height: 120
  closeAction: function() {
    java.lang.System.exit(0);
  }
  visible: true

  menus: []

  content: BorderPanel {
    top: Label {
      text: "Hello!"
      font: Font {
          name: "Serif"
          size: 16
          style: FontStyle.BOLD
      }
      foreground: Color.DARKBLUE
    }
    center: TextField {}
    bottom: Button {
      text: "Click"
      action: function(){}
    }
  }
}

BorderPanelでコンポーネント類を組み込んだ例。


BorderPanelを使っていくつかの部品をSwingFrameに配置した例です。ここでは、Label,TextField,Buttonといった部品を配置してみました。いずれも、旧バージョンにあったクラスですね。これらも、javafx.ext.Swingパッケージに用意されています。

ここでは、LabelのfontアトリビュートにFontクラスを使ってフォントを設定しています。これも旧バージョンにあったクラスですが、パッケージが「javafx.scene」に変更されているので注意が必要です。また、スタイルは「FontStyle」クラスのアトリビュートを使って指定しています。旧バージョンのように、単に「bold」などではなく、「FontStyle.BOLD」といった形で記述しないといけません。

また、テキストの色を設定するのに「foreground」アトリビュートを使っています。これには、Colorインスタンスを指定します。このあたりも旧バージョンと同じですが、やはりColorクラスの置かれているパッケージが変更になっています。新バージョンでは、javafx.scene.paintに用意されているのです。

また、Colorクラスには主な色の値がアトリビュートとして用意されていますが、これもやはり「Color.DARKBLUE」というようにクラス名から指定して書く必要があります。アトリビュートは、DARKBLUEのように従来なかった色もかなり増えていますので、ちょっと色を利用するだけならわざわざ一からColorインスタンスを作らずとも済むでしょう。
  • 1
  • 2
  • 3
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

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