2017-04-20 68 views
1

排序順序我有一個JavaFX分類的tableview - 定義爲重寫初始化方法如下:的JavaFX分類的tableview如何重新排序拖欠重新顯示

// Bind the FX tableview to the data - allowing sorting 
final SortedList<LoadedWotsitModel> sortedList = 
    new SortedList<LoadedWotsitModel>(configurationDataManager.getLoadedWotsit()); 

tableLoadedWotsit.setItems(sortedList); 
sortedList.comparatorProperty().bind(tableLoadedWotsit.comparatorProperty());  

// Sort by time 
colTime.setSortType(TableColumn.SortType.ASCENDING); 
tableLoadedWotsit.getSortOrder().add(colTime); 

這個工作表中的精品,其他列也可由用戶分類。

當對話框關閉並重新打開時,它按照用戶上次選擇的順序排序。每次顯示對話框(不是先前選擇的用戶排序順序)時,我希望能夠按默認的colTime列進行排序。

在顯示錶格時,我可以掛鉤什麼事件來對錶格重新排序?

回答

0

我的解決辦法是使用一個菜單控制器,從而在代碼調用對話框:

myDialogController.sortByTimeAscending(); 
myDialog.show(); 

允許我打電話給在控制器的方法直接執行所述排序。

/** 
* Sort by time (ascending). 
*/ 
public void sortByTimeAscending() 
{ 
    colTime.setSortType(TableColumn.SortType.ASCENDING); 

    tableLoadedWotsit.getSortOrder().clear(); 
    tableLoadedWotsit.getSortOrder().add(colTime); 
}