gpt4 book ai didi

scala => javafx 弹出窗口

转载 作者:行者123 更新时间:2023-12-01 09:21:42 24 4
gpt4 key购买 nike

我想用 javafx 在 scala 中创建一个 pop-in

final val popup = new Popup  
val text: Text = new Text(s)
popup.setAutoFix(false)
popup.setHideOnEscape(true)
popup.getContent().addAll(text)
popup.setX(250)
popup.setY(175)
popup.show(stage)

但是我有一个错误

org.view.View@72d873: caught java.lang.IllegalStateException: Not on FX application thread; currentThread = ForkJoinPool-1-worker-1
java.lang.IllegalStateException: Not on FX application thread; currentThread = ForkJoinPool-1-worker-1

有人有想法吗?

谢谢

最佳答案

如错误提示,您可能应该在 FX 应用程序线程上调用 show 方法。

发生这种情况是因为修改 UI 的代码必须在特定的 UI 线程上执行(Swing 和其他 GUI 框架也是如此),以防止并发更新并保证 UI 组件的一致性。

通常这些修改已经在正确的线程上进行,该线程执行 UI 事件监听器的回调代码,但如果您需要从另一个线程访问 UI,则必须将其安排在 FX Application 线程上调用

javafx.application.Platform.runLater(Runnable r)

runLater (new Runnable() {
def run = popup.show(stage)
})

关于scala => javafx 弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13497524/

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