我有一个JavaFX排序表视图 - 在重写的initialize方法中定义如下:
// 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 :(得分:1)
我的解决方案是使用菜单控制器并在代码中调用对话框:
myDialogController.sortByTimeAscending();
myDialog.show();
允许我直接在控制器中调用一个执行排序的方法。
/**
* Sort by time (ascending).
*/
public void sortByTimeAscending()
{
colTime.setSortType(TableColumn.SortType.ASCENDING);
tableLoadedWotsit.getSortOrder().clear();
tableLoadedWotsit.getSortOrder().add(colTime);
}