我将如何通过另一种方法以编程方式单击 JavaFX 中的按钮? [英] How would I programmatically click a button in JavaFX from another method?

查看:19
本文介绍了我将如何通过另一种方法以编程方式单击 JavaFX 中的按钮?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个侦听器类,它连接到我的手机中,用于接收来自名为 TouchOSC 的应用程序的输入.在那个班级中,只要我按下手机上的按钮,我就可以调用方法.我需要做的是,每当我的计算机从我的手机接收到输入时,单击 JavaFX 按钮以在该方法中触发一个事件.我怎么会触发这样的事情?

I have a listener class that is networked into my phone to receive input from an application called TouchOSC. In that class, I can call methods whenever I press a button on my phone. What I need to do is to click a JavaFX button to trigger an event in that method whenever my computer receives the input from my phone. How would I trigger something like that?

推荐答案

button.fire()

当用户手势指示应发生此 ButtonBase 的事件时调用.

Invoked when a user gesture indicates that an event for this ButtonBase should occur.

当一个按钮被触发时,按钮的 onAction 事件处理程序被调用.

When a button is fired, the button's onAction event handler is invoked.

按钮的动作,只要按钮被触发就会调用.这可能是由于用户使用鼠标单击按钮、触摸事件、按键或开发人员以编程方式调用了 fire() 方法.

The button's action, which is invoked whenever the button is fired. This may be due to the user clicking on the button with the mouse, or by a touch event, or by a key press, or if the developer programmatically invokes the fire() method.

示例代码

创建一个按钮并自动触发它四次.

Creates a button and automatically fires it four times.

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;

import java.io.IOException;
import java.util.stream.IntStream;

public class RapidFire extends Application {
    private static int nClicks = 0;

    @Override
    public void start(Stage stage) throws IOException {
        // setup button and action handler.
        Button button = new Button("Click Me!");
        button.setOnAction(event -> {
            nClicks++;
            System.out.println("Clicked " + nClicks + " times.");
        });
        button.setPadding(new Insets(10));
        button.setPrefWidth(100);

        // show the button.
        stage.setScene(new Scene(button));
        stage.show();

        // fire the button a few times in succession.
        IntStream.range(0, 4).forEach(
                i -> button.fire()
        );
    }

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

样本的输出为:

Clicked 1 times.
Clicked 2 times.
Clicked 3 times.
Clicked 4 times.

这篇关于我将如何通过另一种方法以编程方式单击 JavaFX 中的按钮?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆