我正在构建一个JavaFX应用程序并使用JOptionPane来显示对话框
我遇到的一个问题是创建一个新的对话框而不是在5秒左右的时间内解除它会导致主JavaFX阶段进入“无响应”状态
在新线程中运行joptionpane代码有效,但会导致对话框不是模态的,这不适合我正在构建的应用程序
这一切都在Windows中运行。
任何解决无响应问题的方法都将非常感激:)
编辑:我使用的代码是(来自主JavaFX线程)
JOptionPane.showMessageDialog(null, "message here");
也许null导致问题?
答案 0 :(得分:2)
你不能只从FX线程中显示一个JoptionPane,它是一个Swing组件。您有三种选择:
对于1和3,您需要小心在Swing EDT线程和JavaFX线程上的JavaFX节点上创建/修改Swing组件(除非您将两者与Java 8中提供的新JVM选项合并)。如果你混合使用Swing和JavaFX,我不能100%确定模态周是如何工作的。
如果您正在创建JavaFX应用程序,则没有理由不选择2。
答案 1 :(得分:0)
不要在JavaFX应用程序中使用JOptionPane,而是使用JavaFX Alert。警报是在Java 8u40中引入的。
由于assylias的答案中指出的原因,在JavaFX中使用JOptionPane可能会有问题。
另见: