我有申请:
- 一个用于用户输入的 JTextField,
- 一个 JLabel 来回显示忙碌状态,
- 一个用于打印搜索结果的 JTextArea。
我希望用户将文本写入文本字段,按 Enter 并查看结果。我有这样的听众:
private void searchForPattern(java.awt.event.ActionEvent evt) {
textArea.setText("");
busyLabel.setText("Searchnig ...");
doSearch();
busyLabel.setText("Idle");
}
在doSearch中有一个相当复杂的算法,它会打开大量 XML 文件并搜索给定的模式,这需要一段时间。只有在 doSearch 完成后,busyLabel 的文本才会更改为 Searching ...。doSearch 中没有第二个线程,只有大量的 IO 操作。
我怎样才能解决这个问题?