libro
www.tuyano.com
初心者のためのJavaFXプログラミング入門

JavFXアプリケーションの基本コード (4/6)

作成:2014-11-15 10:11
更新:2014-11-15 10:11

■Scene、Pane、そしてコンポーネント

では、このウインドウに簡単なコンポーネントを追加してみましょう。もっともシンプルなものとして、テキストを表示するだけのコンポーネントを追加してみることにします。

下に掲載したリストがそのサンプルです。これを実行すると、ウインドウの中央に「This is JavaFX!」というテキストが表示されます。

テキストの表示は、AWT/Swingと同様に「Label」というクラスとして用意されています。これはSWT/Swingのものとは違います。javafx.scene.controlパッケージに用意されている、JavaFX専用のものです。

これでテキストは表示できますが、しかし単純にStageLabelを追加すればいいかというと、そうはいきません。Stageには、「Scene」と「Pane」というものを用意しないといけないのです。

●Sceneとは?
Scene」というのは、Stageに組み込まれる見えないコンテナです。Stageはウインドウですが、このウインドウの中に表示される内容を構築するのがSceneです。このSceneに組み込まれたものをStageにはめ込んで表示するのですね。このSceneは、以下のような形でインスタンスを作成します。
new Scene( 《Pane》, 横幅 , 高さ );
横幅と高さはわかりますね。作成するコンテナの大きさです。これをStageにはめ込むことで、そのサイズにウインドウが調整されます。

では、Paneというのは? これが、コンポーネント類を組み込む土台となるコンテナです。Sceneには、Paneを1つだけ組み込めるようになっているのです。

Paneは、1つだけしかないわけではなく、いくつかの種類があります。それは、Pane内にどのようにコンポーネントを組み込むか? そのレイアウト方式の違いによります。というと、「ははぁ、あれだな」と想像がつくでしょう。そう、AWT/Swingの「レイアウトマネージャ」みたいなものなのです。ただし、レイアウトの管理だけをするレイアウトマネージャと異なり、Paneは「コンテナにレイアウトマネージャ機能が組み込まれたようなもの」と想像するとよいでしょう。

整理すると、コンポーネントを利用するウインドウの構成は以下のようになります。

Stageの中にSceneが組み込まれている。
Sceneの中にPaneが組み込まれている。
Paneの中にコンポーネントが組み込まれている。

これで、ようやくコンポーネント類が使えるようになるわけです。ちょっと構造は違いますが、Swingなどもコンテナを組み合わせて画面を作りましたから、それほど違和感はないでしょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

package com.tuyano.libro;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

public class App extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage stage) throws Exception {
        Label label = new Label("This is JavaFX!");
        BorderPane pane = new BorderPane();
        pane.setCenter(label);
        Scene scene = new Scene(pane, 320, 240);
        stage.setScene(scene);
        stage.show();
    }

}

※関連コンテンツ

「初心者のためのJavaFXプログラミング入門」に戻る