Change.wasPermutated() для списка столбцов TableView всегда возвращает false при изменении порядка столбцов.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Change.wasPermutated() для списка столбцов TableView всегда возвращает false при изменении порядка столбцов.

Сообщение Anonymous »

У меня есть две таблицы, и обе таблицы должны иметь одинаковый порядок столбцов. Пользователь может изменить порядок столбцов в первой таблице. В этом случае программа должна обнаружить изменения в порядке столбцов в первой таблице и изменить порядок столбцов во второй таблице.
Проблема в том, что метод Change.wasPermutated() всегда возвращает false когда я меняю порядок столбцов с помощью мыши в первой таблице. Это мой код:

Код: Выделить всё

public class JavaFxTest7 extends Application {

private static class Student {

private int id;

private String name;

private int mark;

public Student(int id, String name, int mark) {
this.id = id;
this.name = name;
this.mark = mark;
}

public int getId() {
return id;
}

public String getName() {
return name;
}

public int getMark() {
return mark;
}
}

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

@Override
public void start(Stage stage) {
var table1 = this.createTable();
var table2 = this.createTable();
table1.getColumns().addListener((ListChangeListener>)(change) -> {
while (change.next()) {
System.out.println("wasPermutated:" + change.wasPermutated());
if (change.wasPermutated()) {
int from = change.getFrom();
int to = change.getTo();
System.out.println("from: " + from + " to: " + to);
}
}
});
var scene = new Scene(new VBox(table1, table2), 300, 300);
stage.setScene(scene);
stage.show();
}

private TableView createTable() {
var table = new TableView(FXCollections.observableList(Arrays.asList(new Student(1, "Billy", 3),
new Student(2, "Johnny", 4), new Student(3, "Mickey", 5))));
var idColumn = new TableColumn("ID");
idColumn.setCellValueFactory((data) ->  new ReadOnlyObjectWrapper(data.getValue().getId()));
var nameColumn = new TableColumn("Name");
nameColumn.setCellValueFactory((data) ->  new ReadOnlyStringWrapper(data.getValue().getName()));
var markColumn = new TableColumn("Mark");
markColumn.setCellValueFactory((data) ->  new ReadOnlyObjectWrapper(data.getValue().getMark()));
table.getColumns().addAll(idColumn, nameColumn, markColumn);
table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY_FLEX_LAST_COLUMN);
return table;
}
}
Может ли кто-нибудь сказать, как это исправить?

Подробнее здесь: https://stackoverflow.com/questions/783 ... when-colum
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»