java - 哪个线程启动 JOptionPane?

标签 java swing

我们有一个带有套接字通信和其他线程的 Swing 应用程序。我们知道我们需要使用 SwingUtilities.invokeLater() 从其他线程更新 Swing 显示。但是 JOptionPane 怎么样?我们是否需要从其他线程使用 SwingUtilities.invokeLater() 来启动 JOptionPane

如果是,如何使用JOptionPane来屏蔽程序?

如果答案是否定的,JOptionPane不属于GUI显示吗?

最佳答案

if the answwer is yes, how to use JOptionPane to block the procedure

答案是肯定的。您应该访问/修改/... Event Dispatch Thread 上的所有 Swing 组件。因此,您的后台线程需要使用某种机制来调用 EDT 上的 JOptionPane。使用 SwingUtilities#invokeLater 是一个选项,但不是阻塞选项。

SwingUtilities#invokeAndWait 用于阻塞行为。此方法将等到可运行对象完成后再返回。

关于java - 哪个线程启动 JOptionPane?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13863713/

相关文章:

java - Apache poi - 打印布局,同一张纸上有多个打印区域

java - 生成的 html 显示 ?而不是国际字符

java - 将 CSV 导入 Jpanel 上的 JTable(无 CSVReader)

java - 从一个单独的类(class)开始一个类(class)

Java 图形错误 : Static/Nonstatic mishap

java - 在 Swing GUI 应用程序中捕获异常

java - 部署 Eclipse 插件的完整过程

java - sax 解析器从 xml 返回空字符串

java - Assets 在处置和重新加载后不会被渲染

java - JTree 在更改节点名称时更改 lineStyle