HOWTO · Java

JavaFX の setOnAction メソッド

このチュートリアルでは、JavaFX の setOnAction メソッドについて説明します。

このページの内容

アクションを作成しないと、ユーザー インターフェイスは何もありません。 アクションとは、ユーザーがシステムに特定のタスクを実行するように命令したときに開始されるシステム プロセスです。

JavaFX では、メソッド setOnAction() を使用してアクションを追加できます。

この記事では、任意の UI コンポーネントのアクションを作成する方法について説明します。 また、トピックを理解しやすくするために、説明付きの例を示します。

JavaFX で setOnAction メソッドを使用する

以下の例では、label と button という 2つの基本的な UI コンポーネントを持つ単純な UI を作成しました。 この例のコードは次のようになります。

// Importing necessary packages
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class FXsetAction extends Application {
  Button Btn; // Decleares a button
  Label lbl; // Decleares a lebel
  Scene scene; // Decleares a scent
  HBox _hbox; // Decleares a Hbox

  public void start(Stage PrimaryStage) throws Exception {
    PrimaryStage.setTitle("JavaFX setOnAction"); // Set the application title
    lbl = new Label("Button not clicked"); // Create a label with default text "No click found"
    Btn = new Button("Click"); // Create a button with label "Click"

    Btn.setOnAction(value -> { // Button action handler function
      lbl.setText("Button Clicked!!!"); // When the button clicked, it will change the lable default
                                        // text from "No click found" to "Clicked!!!".
    });

    _hbox = new HBox(Btn, lbl); // Create a HBox

    scene = new Scene(_hbox, 400, 300); // Create a scene with HBox and necessary height and weight
    PrimaryStage.setScene(scene); // Set scene
    PrimaryStage.show(); // Visualize the application
  }

  public static void main(String[] args) {
    Application.launch(args); // Launch the application
  }
}

各行の目的については、既にコード内でコメントしています。 それでは、コードがどのように機能するかを説明しましょう。

lbl = new Label ("Button not clicked"); 行によって、Button not clicked というデフォルトのテキストでコードにラベルを作成しました。 このラベルの目的は、キーが押されたというメッセージをユーザーに表示することです。

次に、単純なキー押下イベントを作成しました。 ユーザーがキーボードからキーを押したときに実行されるアクションとして、ラベルのデフォルト テキストを変更し、Button Clicked!!! に設定しました。

したがって、この目的のために、コードはアクション lbl.setText("Button Clicked!!!"); を追加します。

コンパイルが成功した後にコードを実行すると、JavaFX setOnAction というタイトルのウィンドウが開き、キーボードからキーを押すと、以下のような出力が表示されます。

出力:

setOnAction JavaFX 出力

IDE がライブラリとパッケージの自動インクルードをサポートしていない場合は、コンパイルする前にこれらの必要なライブラリとパッケージを手動でインクルードする必要がある場合があることに注意してください。