Есть POJO-класс Option c одним String полем description.
Объекты этого класса выводятся в таблицу в JavaFX приложении, заполнение через цикл:
public TableView<Option> optionsTable;
public TableColumn<Option, String> descriptionColumn;
ObservableList<Option> TableDescription = FXCollections.observableArrayList();
descriptionColumn.setCellValueFactory(new PropertyValueFactory<Option, String>("description"));
Таблица заполняется и отображается без проблем.
Далее код:
optionsTable.setRowFactory(param -> new ColorRow());
...
private class ColorRow extends TableRow<Option> {
@Override
protected void updateItem(Option item, boolean b) {
super.updateItem(item, b);
boolean flag = (item == null);
if (flag) {
setStyle("-fx-text-background-color: BLACK;");
}
else {
setStyle("-fx-text-background-color: RED;");
}
}
}
При попытке обратиться к экземпляру item в классе updateItem, например:
if (item.getDescription().contains("is not found in the database")) {
при запуске генерируется исключение:
Exception in thread "JavaFX Application Thread"
java.lang.NullPointerException
at fx.Controller$ColorRow.updateItem(Controller.java:100)
Почему не получается обратиться к объекту класса Option и его методам? Что делаю не так?
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости