Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用javafx模拟点击按钮_Java_Button_Javafx - Fatal编程技术网

如何用javafx模拟点击按钮

如何用javafx模拟点击按钮,java,button,javafx,Java,Button,Javafx,我有两个按钮stoRed和toGreen。当点击toRed时,它将场景切换到场景“绿色”,并启动定时器(使用线程)。它从5倒计时到0,然后切换回场景红色。在我的Timer课程中,我实现了以下功能: public void run() { try{ while(running){ if (seconds==1 && goBack){ this.seconds = 6;

我有两个
按钮
s
toRed
toGreen
。当点击
toRed
时,它将
场景
切换到
场景
“绿色”,并启动
定时器(使用线程)。它从5倒计时到0,然后切换回
场景
红色。在我的
Timer
课程中,我实现了以下功能:

public void run() {

    try{
        while(running){
            if (seconds==1 && goBack){

                this.seconds = 6;
                running=false;
                toRed.fire();

            }   ......

但是
toRed.fire()
似乎不起作用(没有任何变化)。如何在我的主类中的
Timer
类中模拟单击
按钮

不向按钮添加事件处理程序,而是在计时器中添加一个函数的名称,该函数执行您希望按钮执行的操作。您调用该函数,而不是触发一个为true的按钮,但“toRed.fire();”应该可以工作。你确定执行到这一步了吗?是的,我确定。我也试过使用toRed.arm();然后发布更多代码,特别是在注册处理程序和更改场景的地方。尝试从javafx应用程序线程执行
fire
:Platform.runLater(toRed::fire)
不要在按钮中添加事件处理程序,而是在计时器中添加一个函数的名称,该函数执行您希望按钮执行的操作。您可以调用该函数,而不是触发按钮。该函数为true,但“toRed.fire();”应该可以工作。你确定执行到这一步了吗?是的,我确定。我也试过使用toRed.arm();然后发布更多代码,特别是在注册处理程序和更改场景的地方。尝试从javafx应用程序线程执行
fire
:Platform.runLater(toRed::fire)