gpt4 book ai didi

java - 当计时器达到 0 时从 Pane 中删除元素吗?

转载 作者:行者123 更新时间:2023-12-01 11:58:25 26 4
gpt4 key购买 nike

当计时器达到零时,我试图从 Pane 中删除元素,更具体地说是标签和文本区域。但是,当计时器达到 0 并且我调用此方法时,我收到此异常。

Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Not on FX application thread; currentThread = AWT-EventQueue-0

代码:

ActionListener timeListener = new ActionListener() {
@Override
public void actionPerformed(java.awt.event.ActionEvent e) {
gameTime--;
System.out.println(gameTime);
if(gameTime == 0){
endGame();
}
}
};

endGame() 方法:

public void endGame(){
timer.stop();
System.out.println("Score: " + score);
view.gamePane.getChildren().removeAll(view.lblQuestion, view.tfAnswer);
}

最佳答案

您正在使用 AWT 操作事件。您想要从 JavaFX-Pane 中删除一个项目。它们在不同的线程中运行。

当您想从 AWT 线程访问 JavaFX 时,请使用:

Platform.runLater(new Runnable() {

@Override
public void run() {
//Your Access to Java FX
}
});

但也许您可以使用 JavaFX 事件而不是 JavaAWT 事件。

关于java - 当计时器达到 0 时从 Pane 中删除元素吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28175845/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com