我有一个TableView
,当用户点击按钮时,其数据会被刷新。但是,用于获取数据的数据库查询可能需要一些时间。
在搜索过程中,我希望显示TableView
的占位符(ProgressIndicator
:
// Add progress indicator while searching
ProgressIndicator pi = new ProgressIndicator(ProgressIndicator.INDETERMINATE_PROGRESS);
pi.setMaxHeight(tblCallRecordList.getHeight() / 2);
tblCallRecordList.setPlaceholder(pi);
// Clear the table data
searchResults.clear();
tblCallRecordList.setItems(searchResults);
// Run the new search
processSearch();
但是,在运行程序时,TableView
永远不会更改,processSearch()
方法会立即运行,将旧数据保留在TableView
中,直到搜索完成。
如果我注释掉processSearch()
,则占位符显示正常。
是否有一些我遗失的奇怪的线程流?