我已经实现了一个独立的 Java 应用程序,它使用 GUI 的 swing 框架。作为 GUI 的一部分,有一个 JTextArea 在单击按钮后出现,并且在后台处理作业后在 jtextarea 处附加一些文本。我正在使用 SwingWorker 库,因为我不希望我的 jtextarea 冻结应用程序并且它运行良好。所以作业代码位于覆盖的 doInBackground 内。
我面临的问题是当我将这个 GUI 应用程序作为 Eclipse 插件的一部分启动时。我已经用我的 Swing 应用程序构建了一个 jar,并且我已经向 Eclipse 工作台添加了一个扩展。在开始时,应用程序正确启动但是当应用程序流到了要调用swingworker的地步,这个特定的jtextarea被冻结了,什么也没发生。似乎我的Swingworker的doInBackground()函数中的代码没有被调用。我在 eclipse pugin 代码中启动应用程序,如下所示:
SwingUtilities.invokeLater(new Runnable() {public void run() {
new MainFrame.setVisible(true);
}
});
其中 MAinFrame 是 java 程序的 JFrame 类。你知道为什么会这样吗?