Я реализовал отдельное Java-приложение, которое использует платформу Swing для GUI. В составе GUI есть JTextArea, который появляется после нажатия кнопки, и некоторый текст добавляется в jtextarea после обработки задания в на заднем плане. Я использую библиотеку SwingWorker, так как я не хочу, чтобы моя jtextarea зависала в приложении, и она отлично работает. Так что код задания находится внутри переопределенного doInBackground.
Проблема, с которой я сталкиваюсь, заключается в том, что когда я запускаю это приложение с графическим интерфейсом как часть плагина Eclipse. Я собрал флягу с моим приложением Swing и добавил расширение в рабочую среду Eclipse. В начале приложение запустилось. правильно, но когда поток приложения переходит к точке, в которой должен вызываться swingworker, эта конкретная jtextarea зависает и ничего не происходит. Кажется, что код внутри функции doInBackground () моего Swingworker не вызывается.
Я запускаю приложение внутри кода Eclipse Pugin, как показано ниже:
SwingUtilities.invokeLater(new Runnable() {public void run() {
new MainFrame.setVisible(true);
}
});
где MAinFrame - это класс JFrame java-программы.
Вы знаете, почему это происходит?