Я написал java-программу и сделал графический интерфейс (мой первый jeej).
Это мой основной метод:
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ui frame = new ui();
frame.setVisible(true);
} catch (Exception e) {
ui.log("Something went wrong: " + e.getMessage());
}
}
});
}
Метод ui.log позволяет мне писать в textArea.
У моей ги есть одна кнопка, которая запускает довольно длинный метод, который занимает несколько минут. В этом длинном методе я хочу иметь возможность регистрироваться в моей текстовой ленте, используя ui.log(). Он работает, но отображается только тогда, когда метод заканчивается, и я хочу видеть результаты во время работы метода. И кнопка, и слушатель buttonEvent сделаны внутри нового ui();
JButton btnNewButton = new JButton("button1");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
thveryLongMethodeThatIwantToLogDuringExecution();
}
});
Кто-нибудь знает, как я могу войти, пока работает метод?
EDIT: Я думаю, что это связано с потоками, но я не уверен. Я никогда ничего не делал с потоками.
Не выполняйте свою работу на EDT. Используйте javax.swing.SwingWorker для выполнения трудоемких фоновых задач.