2017-02-03 8 views

답변

0

나는 TableViewTableColumn에서 많은 속성을 중재하며 나 자신의 해결책을 찾았습니다. 그것은 분명히 우아하지 않고 thread-safe도 아니지만 적어도 작동하며 간단합니다.

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); 
       } 
      } 
     } 
    }); 
}