1
TableView
の表の列をクリックすると、,descending
とdefault
(矢印なし)の代わりになります。ちょうどascending
とdescending
の間で切り替えるにはどうすればよいですか?JavaFX:TableView列の既定の並べ替えを無効にする
TableView
の表の列をクリックすると、,descending
とdefault
(矢印なし)の代わりになります。ちょうどascending
とdescending
の間で切り替えるにはどうすればよいですか?JavaFX:TableView列の既定の並べ替えを無効にする
私は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);
}
}
}
});
}