JavaFX Hello Worldの例
JavaFXは、開発者がさまざまなプラットフォーム間で一貫して動作するリッチクライアントアプリケーションを設計、作成、テスト、デバッグ、および展開できるようにするグラフィックスおよびメディアパッケージのセットです。
(Source: Oracle)
JDK 7u6以降、古いJavaインストールがある場合は、JavaFXが標準のJDKおよびJREバンドルに含まれています。hereを更新またはナビゲートします。
Access JavaFX in Eclipse IDE + Java 8
デフォルトでは、JavaFX APIにアクセスすると、EclipseはAccess restriction
エラーを要求します。 これを解決するには、install e(fx)clipse
plugin。
JavaFX in Java 8
Java 8では、JavaFXはJavaSE実行環境の一部ではなく、外部ライブラリとして–lib\ext\jfxrt.jar
JavaFX Hello worldの例
GridPane
を使用して、背景を描画する4つのRectangles
と、Button
およびLabel
のBorderPane
をレイアウトする簡単な例。
JavaFxHelloWorld.java
package com.techfou.helloworld; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.layout.BorderPane; import javafx.scene.layout.GridPane; import javafx.scene.layout.StackPane; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.scene.text.Font; import javafx.stage.Stage; public class JavaFxHelloWorld extends Application { private int counter = 0; public static void main(String[] args) { launch(); } @SuppressWarnings("static-access") public void start(Stage stage) { stage.setTitle("Hello World!"); GridPane grid = new GridPane(); grid.setHgap(0); grid.setVgap(0); Rectangle r1 = new Rectangle(); r1.setFill(Color.DARKKHAKI); r1.setHeight(125); r1.setWidth(125); Rectangle r2 = new Rectangle(); r2.setFill(Color.rgb(189, 40, 40)); r2.setHeight(125); r2.setWidth(125); Rectangle r3 = new Rectangle(); r3.setFill(Color.hsb(235, 0.52, 0.36)); r3.setHeight(125); r3.setWidth(125); Rectangle r4 = new Rectangle(); r4.setFill(Color.web("b894cc")); r4.setHeight(125); r4.setWidth(125); grid.add(r1, 0, 0); grid.add(r2, 0, 1); grid.add(r3, 1, 0); grid.add(r4, 1, 1); Label l = new Label(); l.setFont(new Font("Calibri", 15)); l.setTextFill(Color.BLACK); Button button = new Button(); button.setFont(new Font("Calibri", 15)); button.setText("Say 'Hello World'"); button.setOnAction(new EventHandler() { public void handle(ActionEvent event) { l.setText("You said Hello to the world: " + ++counter + ((counter == 1) ? " time" : " times")); } }); BorderPane bp = new BorderPane(); bp.setBottom(l); bp.setAlignment(l, Pos.CENTER); bp.setCenter(button); StackPane root = new StackPane(); root.getChildren().add(grid); root.getChildren().add(bp); stage.setScene(new Scene(root, 250, 250)); stage.show(); } }
出力:
「Say 'Hello World'」ボタンを1回クリックすると:
「Hello World」と言うボタンを複数回クリックした場合: