Похоже, ваша проблема в этих двух строках:
idProcesso.setCellValueFactory(data ->
new SimpleIntegerProperty(data.getValue().
getProcessoRodando().getId()).asObject());
tempoE.setCellValueFactory(data ->
new SimpleIntegerProperty(data.getValue().
getProcessoRodando().getTempoExecucaoRest()).asObject());
Иногда data.getValue().getProcessoRodando()
возвращает ноль.Очевидно, что вы не можете вызвать метод с нулевым значением.
Самое простое решение - воспользоваться рекомендацией, приведенной в Что такое NullPointerException и как его исправить? и избегать вызоваМетод с нулевым значением:
idProcesso.setCellValueFactory(data -> {
Processo processo = data.getValue().getProcessoRodando();
return new SimpleObjectProperty<Integer>(processo != null ?
Integer.valueOf(processo.getId()) : null);
});
tempoE.setCellValueFactory(data -> {
Processo processo = data.getValue().getProcessoRodando();
return new SimpleObjectProperty<Integer>(processo != null ?
Integer.valueOf(processo.getTempoExecucaoRest()) : null);
});
Вы также можете использовать Bindings.select или Bindings.selectString , но они ненадежны, так как используют отражение, котороеозначает, что если вы допустите орфографическую ошибку, компилятор не заметит или не отметит ее.
В качестве дополнительного примечания вы должны включить все предупреждения компилятора и устранить их.Затем компилятор предупредит вас, что ваши объекты TableColumn должны иметь типы:
private TableColumn<Processador, Integer> idProcessador;
// ...
idProcessador = new TableColumn<>("ID Processador");