gpt4 book ai didi

java - 退出位于 JavaFX 线程外的 JFrame 内的 WebView

转载 作者:行者123 更新时间:2023-11-29 05:54:11 25 4
gpt4 key购买 nike

我有一些代码可以将 Java FX WebView 添加到 JFrame。这很好用。用户访问特定网站后,我将尝试以编程方式关闭此 JFrame,首先调用 Platform.exit(),然后调用 frame.dispose()。只要我从启动 WebView 的同一线程调用此方法,它就可以正常工作。

但是,这是我要避免的。 Consider the following code (http://pastebin.com/kAjweLi5) .此代码尝试在 URL 更改时关闭程序。但是,这会导致:

IllegalStateException: Attempt to call defer when toolkit not running (stacktrace)

更新:使用我(非常有限)的调试知识,我意识到 exit() 方法似乎成功运行了。堆栈图像:

enter image description here

(黄线执行时出错)

如何从另一个线程/类关闭 JFrame 而不会出现上述异常?

最佳答案

来自之前(修改过的)帖子:

public void exit()
{
Platform.runLater( new Runnable(){@Override public void run(){
System.err.println( "exit/runLater/run" );
webEngine.getLoadWorker().cancel();
Platform.exit();
SwingUtilities.invokeLater( new Runnable(){ @Override public void run() {
System.err.println( "exit/invokeLater/run" );
frame.dispose(); }});
}});
}

需要关闭后台线程

关于java - 退出位于 JavaFX 线程外的 JFrame 内的 WebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12803858/

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