LoginSignup
11

More than 5 years have passed since last update.

JavaFXプログラムの基本構造

Posted at

JavaFXのプログラムの基本的な書き方(構造)をまとめておきます。

サンプルコード

JavaFXの基本構造は下記の通りです。

public class xxx extends Application {
  public static void main(String[] args) {
    launch(args);
  }
  @Override
  public void start(Stage stage) throws Exception {
    primaryStage.show();
  }
}

上から順に説明していきます。

Applicationクラス

JavaFXにおいては、
javafx.applicationパッケージにあるApplicationクラスを継承する必要があります。

その中で、いつものmainメソッドと、Applicationクラスのstartメソッドが呼ばれます。

launchメソッド

JavaFXアプリケーションを起動するためのメソッドです。

startメソッド

アプリケーションを開始する際の処理を記載します。
javafx.stageパッケージのStageクラスのインスタンスが引数として渡されます。

Stageクラス

最上位のJavaFXコンテナです。
このStageの上でアプリケーションを組み立てていきます。
「枠」のようなものです。

showメソッド

ウィンドウに表示を行うメソッドです。

実装例

実装例を交えつつさらに深掘りしていきます。

Hello.JPG

ソースコードは下記の通りです。

package javafx.test;

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

public class Main extends Application{
    public static void main(String[] args){
        launch(args);
    }

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

Labelクラス

ラベルを表示するためのクラスです。
引数としてラベル文字列を渡すことができます。
これはイメージしやすいと思います。

BorderPaneクラス

部品はPaneというところに配置していきます。
Paneには複数種類があり、その中の1つがBorderPaneです。
レイアウトを決めるためのクラスです。

Sceneクラス

Stageが枠だとしたら、Sceneは台紙のようなものです。
このScene上にPaneをのせます。

階層の整理

色々でてきて訳がわからなくなりそうですが、
階層構造としては下記です。
Stage>Scene>Pane>部品

これを頭にイメージしてソースコードを読むとだいぶ整理できると思います。

まとめ

始めは構造がわかりにくかったですが、わかってしまえば簡単です。
アドバイス等あればお願いします。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11