Anonymous
Как правильно сортировать элементы автоматически при изменении списка элементов с использованием шаблона MVVM в JavaFX?
Сообщение
Anonymous » 20 янв 2025, 22:18
Я использую шаблон MVVM. Итак, во ViewModel у меня есть только данные, а во View находится таблица. Мне нужна таблица для сортировки элементов при изменении списка элементов. Это мой код:
Код: Выделить всё
public class NewMain extends Application {
private static class ViewModel {
ObservableList
people = FXCollections.observableArrayList(
new Person("Alice", "25"),
new Person("Bob", "30"),
new Person("Charlie", "20")
);
void update() {
people.clear();
people.addAll(new Person("Mike", "35"), new Person("David", "35"));
}
}
@Override
public void start(Stage primaryStage) {
var viewModel = new ViewModel();
TableView table = new TableView();
table.setItems(viewModel.people);
TableColumn nameColumn = new TableColumn("Name");
nameColumn.setCellValueFactory(new PropertyValueFactory("name"));
TableColumn ageColumn = new TableColumn("Age");
ageColumn.setCellValueFactory(new PropertyValueFactory("age"));
table.getColumns().addAll(nameColumn, ageColumn);
table.getSortOrder().add(nameColumn);
table.getItems().addListener((ListChangeListener
Подробнее здесь: [url]https://stackoverflow.com/questions/79372163/what-is-the-right-way-to-sort-items-automatically-when-item-list-changes-using-m[/url]
1737400728
Anonymous
Я использую шаблон MVVM. Итак, во ViewModel у меня есть только данные, а во View находится таблица. Мне нужна таблица для сортировки элементов при изменении списка элементов. Это мой код: [code]public class NewMain extends Application { private static class ViewModel { ObservableList people = FXCollections.observableArrayList( new Person("Alice", "25"), new Person("Bob", "30"), new Person("Charlie", "20") ); void update() { people.clear(); people.addAll(new Person("Mike", "35"), new Person("David", "35")); } } @Override public void start(Stage primaryStage) { var viewModel = new ViewModel(); TableView table = new TableView(); table.setItems(viewModel.people); TableColumn nameColumn = new TableColumn("Name"); nameColumn.setCellValueFactory(new PropertyValueFactory("name")); TableColumn ageColumn = new TableColumn("Age"); ageColumn.setCellValueFactory(new PropertyValueFactory("age")); table.getColumns().addAll(nameColumn, ageColumn); table.getSortOrder().add(nameColumn); table.getItems().addListener((ListChangeListener Подробнее здесь: [url]https://stackoverflow.com/questions/79372163/what-is-the-right-way-to-sort-items-automatically-when-item-list-changes-using-m[/url]