Есть 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
и его методам? Что делаю не так?
Виртуальный выделенный сервер (VDS) становится отличным выбором
Вопрос таков,собрал проект с помощью мавен,получился jar with dependencies,из консоли intellej idea jar запускается и отлично работаетИз обычной виндовской...