「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > ボタン

ボタン

2024 年 7 月 31 日に公開
ブラウズ:941

ボタンは、クリックされるとアクション イベントをトリガーするコントロールです。 JavaFX には、通常のボタン、トグル ボタン、チェック ボックス ボタン、およびラジオ ボタンが用意されています。これらのボタンの共通機能は、次の図に示すように ButtonBase クラスと Labeled クラスで定義されています。

Image description

Labeled クラスは、ラベルとボタンの共通プロパティを定義します。ボタンは、ボタンのアクションを処理するためのハンドラーを設定する ButtonBase クラスで定義された onAction プロパティを持つことを除いて、ラベルと同じです。

以下のコードは、下の図に示すように、ボタンを使用してテキストの動きを制御するプログラムを提供します。


パッケージアプリケーション; インポートjavafx.application.Application; インポートjavafx.stage.Stage; インポートjavafx.geometry.Pos; インポートjavafx.scene.Scene; インポートjavafx.scene.control.Button; インポートjavafx.scene.image.ImageView; インポートjavafx.scene.layout.BorderPane; javafx.scene.layout.HBoxをインポートします。 javafx.scene.layout.Paneをインポートします。 インポートjavafx.scene.text.Text; public class ButtonDemo extends Application { protected Text text = new Text(50, 50, "JavaFX プログラミング"); protected BorderPane getPane() { HBox ペインForButtons = 新しい HBox(20); Button btLeft = new Button("Left", new ImageView("file:/C:/Users/Paul/development/MyJavaFX/src/application/image/lo.jpg")); Button btRight = new Button("Right", new ImageView("file:/C:/Users/Paul/development/MyJavaFX/src/application/image/lo.jpg")); paneForButtons.getChildren().addAll(btLeft, btRight); paneForButtons.setAlignment(Pos.CENTER); paneForButtons.setStyle("-fx-border-color: green"); BorderPane ペイン = new BorderPane(); pane.setBottom(paneForButtons); ペイン paneForText = new Pane(); paneForText.getChildren().add(text); pane.setCenter(paneForText); btLeft.setOnAction(e -> text.setX(text.getX() - 10)); btRight.setOnAction(e -> text.setX(text.getX() 10)); リターンペイン。 } @Override // Application クラスの start メソッドをオーバーライドします public void start(ステージprimaryStage) { // シーンを作成してステージに配置します シーン scene = new Scene(getPane(), 450, 200); PrimaryStage.setTitle("ボタンデモ"); // ステージタイトルを設定します PrimaryStage.setScene(シーン); // ステージにシーンを配置します PrimaryStage.show(); // ステージを表示する } public static void main(String[] args) { Application.launch(args); } }
package application;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.image.ImageView;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.scene.text.Text;

public class ButtonDemo extends Application {
    protected Text text = new Text(50, 50, "JavaFX Programming");

    protected BorderPane getPane() {
        HBox paneForButtons = new HBox(20);
        Button btLeft = new Button("Left", new ImageView("file:/C:/Users/Paul/development/MyJavaFX/src/application/image/lo.jpg"));
        Button btRight = new Button("Right", new ImageView("file:/C:/Users/Paul/development/MyJavaFX/src/application/image/lo.jpg"));
        paneForButtons.getChildren().addAll(btLeft, btRight);
        paneForButtons.setAlignment(Pos.CENTER);
        paneForButtons.setStyle("-fx-border-color: green");

        BorderPane pane = new BorderPane();
        pane.setBottom(paneForButtons);

        Pane paneForText = new Pane();
        paneForText.getChildren().add(text);
        pane.setCenter(paneForText);

        btLeft.setOnAction(e -> text.setX(text.getX() - 10));
        btRight.setOnAction(e -> text.setX(text.getX()   10));

        return pane;
    }

    @Override // Override the start method in the Application class
    public void start(Stage primaryStage) {
        // Create a scene and place it in the stage
        Scene scene = new Scene(getPane(), 450, 200);
        primaryStage.setTitle("ButtonDemo"); // Set the stage title
        primaryStage.setScene(scene); // Place the scene in the stage
        primaryStage.show(); // Display the stage
    }

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

Image description

プログラムは 2 つのボタン

btLeftbtRight を作成し、各ボタンにはテキストとイメージが含まれます (行 18 ~ 19)。ボタンは HBox (20 行目) に配置され、HBox は枠線ペインの下部に配置されます (25 行目)。テキストは 14 行目で作成され、枠線ペインの中央に配置されます (29 行目)。 btLeft のアクション ハンドラーは、テキストを左に移動します (行 31)。 btRight のアクション ハンドラーは、テキストを右に移動します (行 32)。

プログラムは、ペインを返すために保護された

getPane() メソッドを意図的に定義しています (16 行目)。このメソッドは、ペインにさらにノードを追加するために、次の例のサブクラスによってオーバーライドされます。テキストは保護されていると宣言されているため、サブクラスからアクセスできます (14 行目)。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/paulike/button-4khg?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3