プログラミング

JavaFXの基本コンポーネント解説

JavaFXは、JavaでGUI(グラフィカル・ユーザー・インターフェース)アプリケーションを作成するための強力なライブラリです。これにより、視覚的に魅力的なデスクトップアプリケーションを開発することができます。JavaFXは、特にクロスプラットフォームなアプリケーションを作成するのに適しており、ボタンやラベル、テキストフィールドなど、さまざまな基本的なユーザーインターフェース(UI)コンポーネントを提供します。本記事では、JavaFXで使用される基本的なUIコンポーネントに焦点を当て、これらをどのように活用するかについて詳述します。

1. ボタン(Button)

ボタンは、ユーザーがアクションを実行するための基本的なUIコンポーネントです。JavaFXでボタンを作成するには、Buttonクラスを使用します。以下は、シンプルなボタンを作成し、クリックした際にアクションを実行するコードの例です。

java
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class SimpleButtonExample extends Application { @Override public void start(Stage primaryStage) { Button btn = new Button("Click Me"); btn.setOnAction(e -> System.out.println("Button Clicked!")); StackPane root = new StackPane(); root.getChildren().add(btn); Scene scene = new Scene(root, 300, 250); primaryStage.setTitle("JavaFX Button Example"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }

このコードでは、Buttonオブジェクトを作成し、その上でsetOnActionメソッドを使用してクリックイベントを設定しています。ボタンがクリックされると、コンソールに「Button Clicked!」と表示されます。

2. ラベル(Label)

ラベルは、静的なテキストを表示するために使用されるコンポーネントです。Labelクラスを使って簡単に作成できます。ラベルは、ユーザーに情報を提供するための便利な方法です。

java
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class LabelExample extends Application { @Override public void start(Stage primaryStage) { Label label = new Label("Hello, JavaFX!"); StackPane root = new StackPane(); root.getChildren().add(label); Scene scene = new Scene(root, 300, 250); primaryStage.setTitle("JavaFX Label Example"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }

このコードでは、Labelクラスを使って「Hello, JavaFX!」というテキストを表示します。ラベルは、ユーザーに視覚的に情報を提供するために重要な役割を果たします。

3. テキストフィールド(TextField)

TextFieldは、ユーザーから文字列を入力させるためのUIコンポーネントです。ユーザーが情報を入力し、後でプログラムで処理できるようにするために使用します。以下は、テキストフィールドを作成し、ユーザーが入力したテキストを取得する例です。

java
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.TextField; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class TextFieldExample extends Application { @Override public void start(Stage primaryStage) { TextField textField = new TextField(); Button btn = new Button("Submit"); btn.setOnAction(e -> System.out.println("Text entered: " + textField.getText())); StackPane root = new StackPane(); root.getChildren().addAll(textField, btn); Scene scene = new Scene(root, 300, 250); primaryStage.setTitle("JavaFX TextField Example"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }

このコードでは、TextFieldButtonを使い、ボタンをクリックするとテキストフィールドに入力されたテキストをコンソールに表示します。

4. チェックボックス(CheckBox)

CheckBoxは、ユーザーに対して「はい」または「いいえ」の選択肢を提供するために使用されます。ユーザーが複数の選択肢を選ぶことができるため、設定やオプション画面でよく使用されます。以下は、チェックボックスを使って選択状態を取得する例です。

java
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.CheckBox; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class CheckBoxExample extends Application { @Override public void start(Stage primaryStage) { CheckBox checkBox = new CheckBox("Accept Terms"); checkBox.setOnAction(e -> { if (checkBox.isSelected()) { System.out.println("Terms Accepted"); } else { System.out.println("Terms Not Accepted"); } }); StackPane root = new StackPane(); root.getChildren().add(checkBox); Scene scene = new Scene(root, 300, 250); primaryStage.setTitle("JavaFX CheckBox Example"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }

このコードでは、CheckBoxが選択されているかどうかを判定し、選択されている場合は「Terms Accepted」と表示されます。

5. ラジオボタン(RadioButton)

RadioButtonは、複数の選択肢から1つだけを選ぶためのUIコンポーネントです。ラジオボタンは通常、グループ化して使用します。以下は、ラジオボタンを使って選択肢を提供する例です。

java
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.RadioButton; import javafx.scene.control.ToggleGroup; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class RadioButtonExample extends Application { @Override public void start(Stage primaryStage) { ToggleGroup group = new ToggleGroup(); RadioButton radio1 = new RadioButton("Option 1"); radio1.setToggleGroup(group); RadioButton radio2 = new RadioButton("Option 2"); radio2.setToggleGroup(group); radio1.setOnAction(e -> System.out.println("Option 1 Selected")); radio2.setOnAction(e -> System.out.println("Option 2 Selected")); StackPane root = new StackPane(); root.getChildren().addAll(radio1, radio2); Scene scene = new Scene(root, 300, 250); primaryStage.setTitle("JavaFX RadioButton Example"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }

このコードでは、ToggleGroupを使用して、2つのラジオボタンをグループ化し、1つの選択肢だけを選べるようにしています。

6. スライダー(Slider)

Sliderは、連続的な値を選択するために使用されます。音量の調整やサイズ変更など、ユーザーが値を範囲内で調整する必要があるときに便利です。

java
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Slider; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class SliderExample extends Application { @Override public void start(Stage primaryStage) { Slider slider = new Slider(); slider.setMin(0); slider.setMax(100); slider.setValue(50); slider.valueProperty().addListener((observable, oldValue, newValue) -> { System.out.println("Slider Value: " + newValue); }); StackPane root = new StackPane(); root.getChildren().add(slider); Scene scene = new Scene(root, 300, 250); primaryStage.setTitle("JavaFX Slider Example"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }

このコードでは、Sliderを使って値を0から100までの範囲で選択し、その値が変更されるたびに新しい値を表示します。

結論

JavaFXは、JavaでGUIアプリケーションを開発するために非常に強力で柔軟なツールです。上記で紹介した基本的なUIコンポーネントは、ユーザーインターフェースの構築に役立ち、さまざまなアプリケーションに応じたカスタマイズが可能です。JavaFXを活用することで、より直感的で使いやすいアプリケーションを作成することができます。

Back to top button