У меня есть представление таблицы, в котором я добавляю строку вручную, и я хочу знать, прежде чем добавить строку, если эта запись, которая будет добавлена, уже находится в таблице.Как определить, существует ли запись в tableview в javafx
1
A
ответ
2
James_D заявляет, что вы должны добавить метод в свой класс. Это позволит вам использовать список по умолчанию функцию, так что вы можете просто сделать что-то вроде этого в коде контроллера
if(!table.getItems().contains(newObj))
table.getItems().add(newObj);
Вот пример код:
public void start(Stage primaryStage) throws Exception {
ObservableList<MyObject> items = FXCollections.observableArrayList(
new MyObject("Robert"),
new MyObject("Nick"),
new MyObject("John"),
new MyObject("Kate"));
TableView<MyObject> table = new TableView<>();
table.setItems(items);
TableColumn<MyObject, String> column = new TableColumn<>("Column Name");
column.setCellValueFactory(new PropertyValueFactory<>("name"));
table.getColumns().addAll(column);
table.setItems(items);
TextField textField = new TextField();
Button button = new Button("Add");
button.setOnMouseClicked(event -> {
MyObject newObj = new MyObject(textField.getText());
if(!table.getItems().contains(newObj)){
table.getItems().addAll(newObj);
}
});
VBox root = new VBox();
root.getChildren().addAll(table, textField, button);
primaryStage.setScene(new Scene(root, 600, 475));
primaryStage.show();
}
public static class MyObject {
private String name;
public MyObject(String name) {
setName(name);
}
@Override
public boolean equals(Object obj) {
return obj instanceof MyObject &&
((MyObject) obj).name.equals(name);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
И это будет Проппер путь , но если вы не можете изменить класс объектов, вы всегда можете использовать эту или подобную вспомогательную функцию.
public static boolean contains(TableView<MyObject> table, MyObject obj){
for(MyObject item: table.getItems())
if (item.getName().equals(obj.getName()))
return true;
return false;
}
Смежные вопросы
- 1. Запись данных в JavaFX Tableview
- 2. Определить, существует ли учетная запись
- 3. Определить набор отображаемых элементов в JavaFX TableView
- 4. Дублированный запись TableView на JavaFX
- 5. Запись JavaFX TableView со значениями
- 6. Как определить, существует ли запись на VB.net?
- 7. Самый быстрый способ определить, существует ли запись
- 8. Поиск списка TableView в JavaFX
- 9. Выбор в TableView JavaFX
- 10. Как определить, существует ли папка и доступна ли запись?
- 11. Population TableView в JavaFX
- 12. Свойства JavaFX в TableView
- 13. Ошибка в JavaFX TableView
- 14. Навигация в JavaFX Tableview
- 15. JavaFX: Как отключить строку в TableView?
- 16. Динамический TableView в Javafx
- 17. Как определить, установлен ли PseudoClass в javafx
- 18. Определить, существует ли запись с полем определенного значения в списке
- 19. Импорт первенствует в Tableview (JavaFX)
- 20. Быстрая фильтрация в JavaFX Tableview
- 21. Добавить несколько записей в TableView в JavaFX
- 22. Поиск работы в JavaFX Tableview
- 23. javafx checkboxes in tableview
- 24. TableView и Spinner в JavaFX
- 25. Как проверить, существует ли запись в столбце?
- 26. Как проверить, существует ли запись в реестре?
- 27. Styling TableView в CSS (JavaFX)
- 28. Как ограничить строки для TableView в javafx
- 29. Печать TableView Содержание в JavaFX
- 30. Формат JavaFX SimpleLongProperty в TableView
Просто сделайте 'если (tableView.getItems(). Содержит (...))'. Убедитесь, что ваш класс модели определяет 'equals (...)' соответствующим образом. –
Можете ли вы показать мне пример? –
@James_D Можете ли вы показать мне пример ??? –