У меня есть приложение с:Swing: jLabel.setText вызывалась слишком поздно
- один JTextField для пользовательского ввода,
- один JLabel сюда, показывающий состояние занятости,
- один JTextArea для печати результатов поиска.
Я хочу, чтобы пользователь написал текст в текстовое поле, нажмите enter и просмотрите результаты. У меня есть слушатель, как это:
private void searchForPattern(java.awt.event.ActionEvent evt) {
textArea.setText("");
busyLabel.setText("Searchnig ...");
doSearch();
busyLabel.setText("Idle");
}
В doSearch существует довольно сложный алгоритм, который открывает много файлов XML и поиск по заданному шаблону, это занимает некоторое время. Текст busyLabel изменен на поиск ... только после завершения doSearch. В doSearch нет второго потока, только много операций ввода-вывода.
Как это исправить?
OK большой, это помогло. – Xorty
@ Xorty: добро пожаловать. Будьте уверены, хотя прочитайте учебник, поскольку он содержит важную информацию, если вы собираетесь использовать любую кодировку Swing. –
Thanx, да, я действительно не планирую кодировать Swing, но я определенно прочитал какую-нибудь документацию, чтобы понять, как работает swing, если мне пришлось чаще использовать Swing. – Xorty