gpt4 book ai didi

java - JavaFX制作窗口中的JOptionPane 'Not Respond'

转载 作者:行者123 更新时间:2023-12-02 06:19:52 26 4
gpt4 key购买 nike

我正在构建一个 JavaFX 应用程序并使用 JOptionPane 来显示对话框

我遇到的问题之一是创建一个新对话框并且不在 5 秒左右关闭它会导致主 JavaFX 阶段进入“无响应”状态

在新线程中运行 joptionpane 代码可以工作,但会导致对话框不是模态的,这不适合我正在构建的应用程序

这一切都在 Windows 中运行。

任何解决无响应问题的方法将不胜感激:)

编辑:我使用的代码是(来自主JavaFX线程)JOptionPane.showMessageDialog(null, "此处消息");也许 null 导致了问题?

最佳答案

您不能只从 FX 线程显示 JoptionPane,它是一个 Swing 组件。您有三个选择:

  1. 创建一个 Swing 应用程序并将所有 fx 节点放置在 JFXPanels 中.
  2. 仅使用 FX 节点,例如 using a modal stage或者使用外部库,例如 ControlsFX (仅限 JavaFX 8,但还有其他可与 JavaFX 2 配合使用的库)
  3. 将 JOptionPane 放在 SwingNode 中(仅限 JavaFX 8)

对于 1 和 3,您需要小心地创建/修改 Swing EDT 线程上的 Swing 组件和 JavaFX 线程上的 JavaFX 节点(除非您使用 Java 8 中提供的新 JVM 选项将两者合并)。如果您混合使用 Swing 和 JavaFX,我也不能 100% 确定模态周如何工作。

如果您正在创建 JavaFX 应用程序,则没有理由不选择 2。

关于java - JavaFX制作窗口中的JOptionPane 'Not Respond',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21108927/

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