【问题标题】:JavaFX sorted tableview how to re-sort to default sort order on redisplayJavaFX排序的tableview如何在重新显示时重新排序为默认排序顺序
【发布时间】:2017-04-27 16:15:13
【问题描述】:

我有一个 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 列进行排序(而不是之前选择的用户排序顺序)。

当表格显示时,我可以挂钩什么事件来重新排序?

【问题讨论】:

    标签: sorting javafx tableview


    【解决方案1】:

    我的解决方案是使用菜单控制器并在代码中调用对话框:

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

    允许我直接调用控制器中执行排序的方法。

    /**
     * Sort by time (ascending).
     */
    public void sortByTimeAscending()
    {
        colTime.setSortType(TableColumn.SortType.ASCENDING);
    
        tableLoadedWotsit.getSortOrder().clear();  
        tableLoadedWotsit.getSortOrder().add(colTime);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-22
      • 2022-01-07
      • 1970-01-01
      • 2014-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多