JavaFXは、リッチなユーザーインターフェース(UI)を作成するためのライブラリで、Javaでデスクトップアプリケーションを開発するために広く利用されています。JavaFXは、グラフィックス、マルチメディア、アニメーションなどを扱うための豊富なAPIを提供しており、開発者がインタラクティブで魅力的なアプリケーションを構築できるように設計されています。ここでは、JavaFXの簡単なコンポーネント(クラス)について、いくつか紹介し、その特徴と使用方法を説明します。
1. Stage(ステージ)
Stageは、JavaFXアプリケーションのウィンドウを表します。ユーザーが見るアプリケーションの最上位のコンテナとして機能します。Stageは、ウィンドウのサイズ、位置、タイトルなどのプロパティを制御するために使用されます。
使用例:
javaimport javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Label;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
Label label = new Label("Hello, JavaFX!");
Scene scene = new Scene(label, 300, 200);
primaryStage.setTitle("JavaFX Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
このコードは、ウィンドウに「Hello, JavaFX!」と表示するラベルを作成し、Stageに表示します。
2. Scene(シーン)
Sceneは、JavaFXアプリケーションにおけるコンテンツの集まりを管理します。Stageに対して1つ以上のシーンを設定することができます。シーン内には、UIコンポーネント(ボタン、テキストフィールド、ラベルなど)を追加して、ユーザーインターフェースを構築します。
使用例:
javaimport javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Button;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
Button button = new Button("Click Me");
Scene scene = new Scene(button, 200, 100);
primaryStage.setTitle("JavaFX Button Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
このコードでは、ボタンが含まれたシーンを作成し、それをStageにセットしています。
3. Button(ボタン)
Buttonは、ユーザーがクリックできるインタラクティブなUIコンポーネントです。イベントハンドラーを設定することで、クリック時に特定の動作を実行させることができます。
使用例:
javaimport javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
Button button = new Button("Click Me!");
button.setOnAction(e -> System.out.println("Button was clicked"));
StackPane root = new StackPane();
root.getChildren().add(button);
Scene scene = new Scene(root, 300, 200);
primaryStage.setTitle("JavaFX Button Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ボタンをクリックすると、コンソールに「Button was clicked」と表示されます。
4. TextField(テキストフィールド)
TextFieldは、ユーザーがテキストを入力できるフィールドを提供します。フォームや検索機能など、入力を必要とする場面でよく使用されます。
使用例:
javaimport javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.layout.StackPane;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
TextField textField = new TextField();
textField.setPromptText("Enter your name");
StackPane root = new StackPane();
root.getChildren().add(textField);
Scene scene = new Scene(root, 300, 200);
primaryStage.setTitle("JavaFX TextField Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
この例では、ユーザーが名前を入力するためのTextFieldを作成しています。
5. Label(ラベル)
Labelは、テキストを表示するためのシンプルなコンポーネントです。UIの他の要素と組み合わせて、情報をユーザーに提供するために使用されます。
使用例:
javaimport javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
Label label = new Label("Welcome to JavaFX!");
StackPane root = new StackPane();
root.getChildren().add(label);
Scene scene = new Scene(root, 300, 200);
primaryStage.setTitle("JavaFX Label Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Labelは単純なテキスト表示に非常に便利です。
6. HBox / VBox(水平・垂直レイアウト)
HBoxとVBoxは、コンポーネントを水平または垂直に並べるためのレイアウトコンテナです。複数のUIコンポーネントを整理して配置する際に役立ちます。
使用例:
javaimport javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
Button button1 = new Button("Button 1");
Button button2 = new Button("Button 2");
HBox hbox = new HBox(10); // 10はボタン間のスペース
hbox.getChildren().addAll(button1, button2);
Scene scene = new Scene(hbox, 300, 200);
primaryStage.setTitle("JavaFX HBox Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
このコードでは、2つのボタンを水平に並べています。
結論
JavaFXは、ユーザーインターフェースを作成するための強力なライブラリであり、豊富なコンポーネントと機能を提供しています。Stage、Scene、Button、TextFieldなど、基本的なUIコンポーネントを理解し、適切に使いこなすことは、JavaFXアプリケーションを効果的に開発するための第一歩です。これらのコンポーネントを組み合わせることで、リッチでインタラクティブなアプリケーションを構築することができます。
