3
IM從按鈕調用invokeLater的direcly上的actionPerformed與此代碼:搖擺的invokeLater凍結
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
int temp = (jComboBox1.getSelectedIndex() + 1);
heavyProccesingFunction();
}
});
}
和仍然凍結GUI。爲什麼?沒有使用invokelater函數,我得到相同的結果。
我應該使用
Thread queryThread = new Thread() {
public void run() {
呢?
編輯:
謝謝,應該使用新的線程。
「如果從事件派發線程調用invokeLater - 例如,從JButton的ActionListener中調用 - doRun.run()將被推遲到所有待處理事件處理完成之前請注意,如果doRun.run )拋出一個未捕獲的異常,事件分派線程將退出(而不是當前線程)。「 http://download.oracle.com/javase/1.4.2/docs/api/javax/swing/SwingUtilities.html#invokeLater%28java.lang.Runnable%29 –