按钮是一个点击时触发动作事件的控件。 javafx 提供常规按钮、切换按钮、复选框按钮和单选按钮。这些按钮的共同特征定义在 buttonbase 和 labeled 类中,如下图所示。

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;

公共类 ButtonDemo 扩展应用程序 {
protected Text text = new Text(50, 50, "JavaFX 编程");

受保护的 BorderPane getPane() {
    HBox paneForButtons = new HBox(20);
    Button btLeft = new Button("左", new ImageView("文件:/C:/Users/Paul/development/MyJavaFX/src/application/image/lo.jpg"));
    Button btRight = new Button("右", new ImageView("文件:/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方法
公共无效开始(阶段primaryStage){
    // 创建场景并将其放置在舞台中
    场景场景 = new Scene(getPane(), 450, 200);
    PrimaryStage.setTitle("ButtonDemo"); // 设置舞台标题
    PrimaryStage.setScene(场景); // 将场景放置在舞台上
    PrimaryStage.show(); // 显示舞台
}

公共静态无效主(字符串[] args){
    应用程序.launch(args);
}

}

登录后复制
程序创建两个按钮 btLeft 和 btRight,每个按钮包含一个文本和一个图像(第 18-19 行)。按钮放置在 HBox 中(第 20 行),HBox 放置在边框窗格的底部(第 25 行)。文本在第 14 行中创建,并放置在边框窗格的中心(第 29 行)。 btLeft 的操作处理程序将文本向左移动(第 31 行)。 btRight 的操作处理程序将文本向右移动(第 32 行)。

程序特意定义了一个受保护的getPane()方法来返回一个窗格(第16行)。在接下来的示例中,该方法将被子类覆盖,以在窗格中添加更多节点。该文本被声明为受保护,以便子类可以访问它(第 14 行)。

    以上就是按钮的详细内容,更多请关注php中文网其它相关文章!