2017-01-17 10 views

ответ

3

Вы можете добавить прослушиватель sortOrder свойства вашего TableView, который является ObservableList, и убедитесь, что этот список не имеет более чем одну записи:

myTableView.getSortOrder().addListener((ListChangeListener.Change<? extends TableColumn> c) -> { 
    while (myTableView.getSortOrder().size() > 1) { 
     myTableView.getSortOrder().remove(1); 
    } 
}); 

Однако, обратите внимание, что этот подход обесценивает Change объект для всех последующих слушателей. Поэтому, если у вас есть другие слушатели для sortOrder собственности, вы можете использовать этот подход:

myTableView.setOnSort(sortEvent -> { 
    while (myTableView.getSortOrder().size() > 1) { 
     myTableView.getSortOrder().remove(1); 
    } 
}); 
+0

Спасибо, второй вариант отлично работает. Первый вариант менее изящный, потому что это, вероятно, заставляет слушателя изменений перейти в какой-то ненужный цикл. – Jai