java - 新线程中的 JDialog 没有响应

标签 java multithreading swing jdialog

我想在另一个线程中创建一个 JDialog(将显示时间), 在主线程中,将运行一个函数..

当我创建对话框时,它显示了,但是它“卡住了”...我看不到 它的组件...

只有当主线程中的函数完成时 - 对话框才能正确显示..

我该如何解决?

最佳答案

如果您在 Swing EDT 上运行大型任务,那么它将阻止 UI 元素被重新绘制,因为这是所有 Swing 绘制发生的线程。

解决此问题的唯一明智方法是在单独的线程上运行大型任务。查看 SwingWorker 类:http://docs.oracle.com/javase/6/docs/api/javax/swing/SwingWorker.html

关于java - 新线程中的 JDialog 没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8417484/

相关文章:

c# - 需要解释事件处理和委托(delegate)

c - 多线程中使用的套接字?

python - 如何在 pygtk 中使用线程

java - 一点一点画曲线

java - swing中视觉组件的动态更新

java - 使用 posix ipc 消息队列通信 Java 应用程序和 C++ 进程

java - 接口(interface)类型实例来自哪个类

java - 仅使用一列时使组件在 GridBagLayout 中跨越多行

java - Spring MongoTemplate - 通过正则表达式在集合中查找

java - ArrayOutOfBoundsException : asm. ClassReader.readClass(未知来源)