0

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.

Jaia
  • 89
  • 6
  • 6
    Posible duplicado de [¿Cuál es la solución a todos los errores NullPointerException presentes, pasados y futuros?](https://es.stackoverflow.com/questions/42977/cu%c3%a1l-es-la-soluci%c3%b3n-a-todos-los-errores-nullpointerexception-presentes-pasados) –  Mar 08 '19 at 01:31
  • Parece que el error esta relacionado con el `TableView`, tal ves esto te ayude https://stackoverflow.com/questions/33067220/tableview-setitems-throw-null-exception-in-java – Junior Usca Mar 08 '19 at 01:55
  • Gracias por los comentarios. La solución era tan simple como inicializar las columnas. Si es que ya es muy tarde, ni veo. – Jaia Mar 08 '19 at 02:28

0 Answers0