Ich habe Probleme mit Null-Zeiger beim Versuch, Tabelle Population zu initiieren. Ich habe mein Objekt aus der Klasse Komponenta
welche Daten ich in ObservableList
einfügen und dann versuchen, es in einer TableView
zu zeigen. Ich habe dieses Mal versucht, mit mehreren fxml-Bildschirmen zu arbeiten und aus irgendeinem Grund funktioniert es nicht mit mehr als 1 .fxml
. test
ist eine Methode, die ich anrufe, wenn eine Taste auf main.fxml
gedrückt wird, so dass sie eine neue lädt.JavaFX TableView/Spalte Nullzeiger Ausnahme
MainController.java
public ObservableList<Komponenta> komponente = FXCollections.observableArrayList(new Komponenta("Neki Tip", "Neki Proizvodac","Neki opis", 5));
@FXML
private TableView<Komponenta> Tablica;
@FXML
private TableColumn<Komponenta,String> Tip;
@FXML
private TableColumn<Komponenta,String> Proizvodac;
@FXML
private TableColumn<Komponenta,String> Karakteristika;
@FXML
private TableColumn<Komponenta,Integer> Komada;
@FXML
private void test(ActionEvent event) throws IOException{
Node node=(Node) event.getSource();
Stage stage = (Stage) node.getScene().getWindow();
Parent root = (Pane)FXMLLoader.load(getClass().getResource("ElKomponenta.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
@FXML
private void initialize() throws Exception {
System.out.println(komponente.get(0).getKomada());
Tip.setCellValueFactory(new PropertyValueFactory<Komponenta, String>("tip"));
Proizvodac.setCellValueFactory(new PropertyValueFactory<Komponenta, String>("proizvodac"));
Karakteristika.setCellValueFactory(new PropertyValueFactory<Komponenta, String>("karakteristika"));
Komada.setCellValueFactory(new PropertyValueFactory<Komponenta, Integer>("komada"));
Tablica.setItems(komponente);
}
ElKomponenta.fxml
<TableView fx:id="Tablica" prefHeight="603.0" prefWidth="889.0">
<columns>
<TableColumn fx:id="Tip" prefWidth="177.0" text="Tip" />
<TableColumn fx:id="Proizvodac" minWidth="0.0" prefWidth="207.0" text="Proizvođač" />
<TableColumn fx:id="Karakteristika" prefWidth="326.0" text="Karakteristike" />
<TableColumn fx:id="Komada" minWidth="0.0" prefWidth="178.0" text="Komada" />
</columns>
</TableView>
Fehler:
Caused by: java.lang.NullPointerException
at application.MainController.initialize(MainController.java:62)
... 27 more
Welche ist die Linie, die zuerst zu setCellValueFactory
beginnt.
Auch bei Bedarf Komponenta.java
public class Komponenta {
private String proizvodac;
private String tip;
private String karakteristika;
private Integer komada;
public Komponenta(String a, String b, String c, Integer d){
this.tip = a;
this.proizvodac = b;
this.karakteristika = c;
this.komada = d;
}
public String getProizvodac() {
return proizvodac;
}
public void setProizvodac(String proizvodac) {
this.proizvodac = proizvodac;
}
public String getTip() {
return tip;
}
public void setTip(String tip) {
this.tip = tip;
}
public String getKarakteristika() {
return karakteristika;
}
public void setKarakteristika(String karakteristika) {
this.karakteristika = karakteristika;
}
public Integer getKomada() {
return komada;
}
public void setKomada(Integer komada) {
this.komada = komada;
}
}