JavaFX は、Java 向けの GUI(グラフィカルユーザーインターフェース)フレームワークです。Java SE に統合されていたこともあり、クロスプラットフォームのデスクトップアプリケーションを開発するための強力なツールセットを提供します。
🔹 JavaFX の概要
項目 | 説明 |
---|---|
開発元 | Oracle(現在は OpenJFX プロジェクトとしてオープンソース化) |
用途 | GUI アプリケーション(デスクトップ向け) |
言語 | Java(および FXML) |
描画 | ハードウェアアクセラレーション(GPU)を活用した Scene Graph ベースの描画 |
UI 定義方法 | Java コード / FXML(XML ベースのマークアップ言語) |
マルチメディア | 音声、動画、Web(WebView)などをサポート |
レイアウト | VBox、HBox、BorderPane、GridPane などの多彩なレイアウト管理 |
🔸 主な機能
- Scene Graph ベースのアーキテクチャ
→ UI をツリー構造で管理。ノード(Node)を組み合わせて画面構成。 - FXML による UI レイアウト分離
→ UI の見た目とロジックを分離でき、開発効率が向上。 - CSS スタイリング対応
→ HTML のように外部スタイルシートで UI を装飾可能。 - WebView による HTML 表示
→ Java アプリケーションにブラウザを組み込める。 - メディアサポート
→ 音声や動画を再生できる。 - アニメーションとトランジション
→ 視覚的な動きや変化を簡単に実装。
🔹 JavaFX の使い所
- デスクトップアプリ(POS、業務用アプリなど)
- 教育ツールや可視化アプリ
- プロトタイピングツール
- ビジュアルリッチなユーザーインターフェースの作成
🔸 サンプルコード(Hello World)
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class HelloJavaFX extends Application { @Override public void start(Stage primaryStage) { Label label = new Label("Hello, JavaFX!"); StackPane root = new StackPane(label); Scene scene = new Scene(root, 300, 200); primaryStage.setTitle("JavaFX Example"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }