Tengo el siguiente error:
Caused by: java.lang.NullPointerException
at controller.CreateTableProductos.<init>(CreateTableProductos.java:28)
at view.TabsController.initialize(TabsController.java:47)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548)
... 26 more
La clase CreateTableProductos contiene:
public class CreateTableProductos {
private TableView<Product> productos = new TableView<>();
private TableColumn<Product, String> nombre;
private TableColumn<Product, String> modelo;
private TableColumn<Product, String> serie;
private TableColumn<Product, LocalDate> falta;
private TableColumn<Product, LocalDate> fbaja;
private ObservableList<Product> listaProductos = FXCollections.observableArrayList();
public CreateTableProductos() throws SQLException {
listaProductos.addAll(new Access().listarProductos());
nombre.setCellValueFactory(c -> { // Esta es la línea 28
return c.getValue().getNombreProperty();
});
modelo.setCellValueFactory(c -> {
return c.getValue().getModeloProperty();
});
serie.setCellValueFactory(c -> {
return c.getValue().getSerieProperty();
});
falta.setCellValueFactory(c -> {
return c.getValue().getfAltaProperty();
});
fbaja.setCellValueFactory(c -> {
return c.getValue().getfAltaProperty();
});
productos.setItems(listaProductos);
}
public TableView getTabla() {
return productos;
}}
El método Access.listarProductos() siempre va a retornar un ArraList y la clase Product contiene:
public class Product {
private final IntegerProperty id;
private final StringProperty nombre, modelo, serie;
private final ObjectProperty<LocalDate> fAlta, fBaja;
public Product(Integer id, String nombre, String modelo, String serie,
LocalDate fAlta, LocalDate fBaja) {
this.id = new SimpleIntegerProperty(id);
this.nombre = new SimpleStringProperty(nombre);
this.modelo = new SimpleStringProperty(modelo);
this.serie = new SimpleStringProperty(serie);
this.fAlta = (fAlta == null ? new SimpleObjectProperty<>(LocalDate.now())
: new SimpleObjectProperty<>(fAlta));
this.fBaja = new SimpleObjectProperty<>(fBaja);
}
public IntegerProperty getIdProperty() {
return id;
}
public Integer getId() {
return id.get();
}
public void setId(Integer id) {
this.id.set(id);
}
public StringProperty getNombreProperty() {
return nombre;
}
public String getNombre() {
return nombre.get();
}
public void setNombre(String nombre) {
this.nombre.set(nombre);
}
public StringProperty getModeloProperty() {
return modelo;
}
public String getModelo() {
return modelo.get();
}
public void setModelo(String modelo) {
this.modelo.set(modelo);
}
public StringProperty getSerieProperty() {
return serie;
}
public String getSerie() {
return serie.get();
}
public void setSerie(String serie) {
this.serie.set(serie);
}
public ObjectProperty<LocalDate> getfAltaProperty() {
return fAlta;
}
public LocalDate getfAlta() {
return fAlta.get();
}
public void setfAlta(LocalDate fAlta) {
this.fAlta.set(fAlta);
}
public ObjectProperty<LocalDate> getfBajaProperty() {
return fBaja;
}
public LocalDate getfBaja() {
return fBaja.get();
}
public void setfBaja(LocalDate fBaja) {
this.fBaja.set(fBaja);
}}
Necesito un poco de orientación. Gracias.