SwingWorker
可以讓你在後臺準備一些數據Thread
然後在EDT中使用它。我正在尋找一個相反的工具:在EDT中準備數據,然後將其傳遞到背景Thread
。Java是否有內置的「反轉」SwingWorker
如果您好奇,該用例將JTable
的狀態保存到磁盤(列順序,大小等)。我需要在EDT中與其模型交談,但不想從此線程寫入磁盤。
喜歡的東西:
void saveCurrentState(final Table table) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
TableColumns state = dumpState(table);
saveToDisk(table.getTableKey(), state);
}
});
}
dumpState()
需要在美國東部時間運行。不應該在EDT中運行saveToDisk()
。整個事情是故意包裝在invokeLater()
,我不能用invokeAndWait()
代替它。
那個其他線程在做什麼?如果它是一個新的線程,只需要給它的數據... –