📜  以编程方式单击按钮 javafx - Java (1)

📅  最后修改于: 2023-12-03 15:06:41             🧑  作者: Mango

以编程方式单击按钮 - JavaFX

在JavaFX中,按钮是常用的控件之一。它可以通过单击来触发事件。有时,我们需要以编程方式单击按钮来执行相应的操作。这篇文章将介绍如何在JavaFX中以编程方式单击按钮。

添加按钮

首先,我们需要创建一个简单的JavaFX应用程序,然后向其中添加一个按钮。下面是一个基本的JavaFX应用程序代码示例,它包含一个名为“Click Me”的按钮:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Main extends Application {
    
    @Override
    public void start(Stage primaryStage) throws Exception{
        Button button = new Button("Click Me");
        StackPane root = new StackPane(button);
        primaryStage.setScene(new Scene(root, 300, 275));
        primaryStage.show();
    }

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

在这个示例中,我们创建了一个名为“Click Me”的按钮,并将其放置在根节点StackPane上。然后将根节点放入一个Scene对象中,并将该场景设置为主窗口的场景。

以编程方式单击按钮

有了按钮后,我们现在就可以以编程方式单击它了。下面是实现此目的的方法:

Button button = new Button("Click Me");
button.fire();

我们只需在按钮对象上调用fire()方法即可。fire()方法将自动触发按钮的ActionEvent事件。

下面是一个完整的JavaFX应用程序代码示例,它演示了如何以编程方式单击按钮并相应地更改按钮的文本:

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Main extends Application {
    
    @Override
    public void start(Stage primaryStage) throws Exception {
        Button button = new Button("Click Me");

        button.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                button.setText("Clicked!");
            }
        });

        StackPane root = new StackPane(button);
        primaryStage.setScene(new Scene(root, 300, 275));
        primaryStage.show();

        // click the button programmatically
        button.fire();
    }

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

在这个示例中,我们添加了一个EventHandler来处理按钮的ActionEvent事件。当按钮被单击时,事件将被触发,并将调用我们所定义的处理程序。处理程序会将按钮的文本更改为“Clicked!”。

然后我们在start()方法的末尾以编程方式单击按钮。我们可以看到按钮的文本在应用程序启动时自动变为“Clicked!”。

总结

在JavaFX中,我们可以使用fire()方法以编程方式单击按钮。这个方法将触发与按钮相关联的ActionEvent事件。使用这种方式,我们可以在不交互地单击按钮的情况下执行任何代码。