当我点击TableView
中的表格列时,它会从ascending
,descending
和default
(无箭头)中切换。如何在ascending
和descending
之间切换?
答案 0 :(得分:0)
我干涉了TableView
和TableColumn
的许多属性,我找到了自己的解决方案。它绝对不优雅,也不是线程安全的,但至少它是有效的,而且很简单。
public static final <T> void disableColumnUnsortedOnClick(TableView<T> tableView)
{
tableView.getSortOrder().addListener(new ListChangeListener<TableColumn<T, ?>>()
{
@Override
public void onChanged(
javafx.collections.ListChangeListener.Change<? extends TableColumn<T, ?>> c)
{
while (c.next())
{
if (c.wasRemoved() && c.getRemovedSize() == 1 && !c.wasAdded())
{
final TableColumn<T, ?> removedColumn = c.getRemoved().get(0);
removedColumn.getTableView().getSortOrder().add(removedColumn);
removedColumn.setSortType(SortType.ASCENDING);
}
}
}
});
}