带有新线程的新JFrame

时间:2012-06-09 03:12:06

标签: java multithreading swing jframe event-dispatching

我创建了一个带有组合框和一个按钮的JFrame,它将创建一个新线程并继续执行操作。我想要一个新的JFrame从每个新线程开始,将日志输出到新的JFrame。但即使我将与JFrame相关的代码放在新线程中并关闭该JFrame,它也会结束整个程序而不是运行的线程。制作我想要的最佳方法是什么?我只是希望在每个新线程启动时打开一个新的JFrame,当我关闭该JFrame时它将结束该线程。

问候!

2 个答案:

答案 0 :(得分:6)

默认情况下,关闭JFrame只会隐藏它(请参阅the documentation for setDefaultCloseOperation())。如果关闭窗口正在退出您的应用程序,这必须由您自己的代码决定。你是不是偶然打电话给setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE),是吗?

答案 1 :(得分:4)

以下是一些想法:

  • 不要阻止事件派发线程;请改为使用SwingWorker,如here所示。

  • 不要使用多个框架;在具有合适layout

  • 的容器中使用面板