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()
代替它。
那个其他线程在做什么?如果它是一个新的线程,只需要给它的数据... –