Я только что узнал, что метод выбора JavaFX TableView selectAll()
-метод чрезвычайно медленный, когда в таблице достаточно данных - у меня не хватило терпения ждать, сколько времени потребуется для 50000 строк.
У всех естькакие-либо обходные решения о том, как выбрать все элементы одновременно?
В противном случае TableView по умолчанию включает Ctrl+A
для выбора всех своих строк.Как мне продолжить отключение этого ярлыка?
Вот пример кода, чтобы продемонстрировать медлительность, просто нажмите Ctrl+A
:
@Override
public void start(Stage primaryStage) throws Exception {
TableView<String> table = new TableView<>();
table.getColumns().add(new TableColumn<>("first"));
table.getColumns().add(new TableColumn<>("second"));
table.getColumns().add(new TableColumn<>("third"));
table.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
ObservableList<String> data = FXCollections.observableArrayList();
for (int i = 0; i < 50000; i++) {
byte[] array = new byte[10];
new Random().nextBytes(array);
String generatedString = new String(array, Charset.forName("UTF-8"));
data.add(generatedString);
}
table.setItems(data);
StackPane root = new StackPane();
root.getChildren().add(table);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}