Я хотел бы динамически добавлять элементы в таблицу.Я делаю это так:
public class TestApp extends Application {
public static void main(final String[] args) {
launch(args);
}
private final AtomicLong counter = new AtomicLong();
@Override
public void start(final Stage primaryStage) {
final VBox root = new VBox(5);
root.setPadding(new Insets(10));
root.setAlignment(Pos.CENTER);
final TableView<String> tableView = new TableView<>();
final TableColumn<String, String> column = new TableColumn<>("Text");
column.setCellValueFactory(f -> new SimpleStringProperty(f.getValue()));
tableView.getColumns().add(column);
// Add some sample items to our TableView
for (int i = 0; i < 100; i++) {
tableView.getItems().add("Item #" + counter.incrementAndGet());
}
final Button button = new Button("Add items");
final long oldElement = counter.get();
button.setOnAction(e -> {
// Add more elements
for (int i = 0; i < 10; i++) {
tableView.getItems().add("Item #" + counter.incrementAndGet());
}
tableView.scrollTo("Item #" + oldElement);
});
root.getChildren().add(button);
root.getChildren().add(tableView);
// Show the Stage
primaryStage.setWidth(300);
primaryStage.setHeight(300);
primaryStage.setScene(new Scene(root));
primaryStage.show();
}
}
(Пример взят из здесь )
Что я хотел бы изменить сейчас, так это то, что когда таблицауже полностью прокручивается вниз, и я добавляю больше элементов, таблица автоматически прокручивается вниз.
Кажется, что состояние прокрутки сохраняется, поэтому я все еще вижу самую нижнюю часть таблицы(и новые элементы).
Как добавить элементы в таблицу, но удерживая прокрутку в текущей позиции / текущей строке?
Функция scrollTo работает, но перемещает последний элементот нижней части обзора к вершине, что также немного раздражает.