Jak wyłączyć zmianę kolejności kolumn w widoku tabelarycznym JavaFX2?

JavaFX2TableView funkcje „Zmiana kolejności kolumn przez użytkownika w czasie wykonywania”. Chciałbym wyłączyć tę funkcję dla jednej konkretnej tabeli w mojej aplikacji.

Patrząc na dokument API, nie ma oczywistego haka API dla tego. Istnieje jednakcolumns-własność. Według doktora reprezentuje

Kolumny TableColumns, które są częścią tego TableView. Ponieważ użytkownik zmienia kolejność kolumn TableView, lista ta zostanie zaktualizowana, aby odzwierciedlić bieżące porządkowanie wizualne.

Mając nadzieję, że przynajmniej uda mi się zresetować zmianę po jej wystąpieniu, spróbowałem dodać słuchacza, aby zresetować zmiany po fakcie.

import javafx.application.Application;
import javafx.collections.ListChangeListener;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.stage.Stage;

public class TableTest extends Application {

  public static void main(String[] args) {
    launch(args);
  }


  @Override
  public void start(Stage stage) {
    TableView tableView = new TableView();
    tableView.getColumns().setAll(new TableColumn(), new TableColumn());
    tableView.getColumns().addListener(new ListChangeListener() {
        @Override
        public void onChanged(Change change) {
            if (change.wasPermutated()){
               change.reset();
            }
        }
    });
    stage.setScene(new Scene(tableView));
    stage.show();
  }
}

Jednak słuchacz rezygnuje zIllegalStateException kiedy o to proszęwasPermutated.
Czy istnieje sposób, aby zapobiec zmianie kolejności lub przynajmniej przywrócić go programowo?

questionAnswers(1)

yourAnswerToTheQuestion