gpt4 book ai didi

java - 对 TableView 列进行排序 : a way to bypass an "unsorted" mode

转载 作者:太空宇宙 更新时间:2023-11-04 12:42:11 26 4
gpt4 key购买 nike

这是我希望得到答案的另一个 JavaFX 问题。目前,当您在 TableView 中对列进行排序时,第一次单击会升序,第二次单击会降序,第三次单击时不会执行任何操作,排序箭头也会消失。我知道第三种排序模式应该将列返回到之前的未排序状态。我知道最近由于受欢迎的要求而添加了这种模式,但是有没有办法完全绕过它?也就是说,第一次点击时我们按升序排序,第二次点击时我们按降序排序,就是这样,第三次点击将再次升序排序?有没有简单的方法可以做到这一点?

谢谢

最佳答案

您是否尝试过向列添加 ChangeListener?

column.sortTypeProperty().addListener( new ChangeListener<javafx.scene.control.TableColumn.SortType>() {
@Override
public void changed(final ObservableValue<? extends javafx.scene.control.TableColumn.SortType> observable,
final javafx.scene.control.TableColumn.SortType oldValue, final javafx.scene.control.TableColumn.SortType newValue) {
if (oldValue==javafx.scene.control.TableColumn.SortType.DESCENDING) {
column.sortTypeProperty().set(javafx.scene.control.TableColumn.SortType.ASCENDING);
}
}
});

编辑:由于上面的代码不起作用(请参阅评论),我建议如下:

Button columnHeader = new Button("column name");
columnHeader.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
if (column.getSortType()==SortType.DESCENDING) {
column.setSortType(SortType.ASCENDING);
}
}
});
column.setGraphic(columnHeader);

关于java - 对 TableView 列进行排序 : a way to bypass an "unsorted" mode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36723568/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com