2017-04-20 69 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); 
}