テーブルの作成を開始しようとすると、NULLポインタに問題があります。 私はObservableList
に入れたKomponenta
というクラスのオブジェクトを持っていて、それをTableView
に表示しようとします。私はこの時間を複数のfxmlスクリーンで処理しようとしましたが、何らかの理由で1より多くのものでは機能しません。.fxml
test
は、main.fxml
のボタンを押すと呼び出され、新しいボタンをロードするメソッドです。JavaFX TableView/Column NULLポインタ例外
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>
エラー:
Caused by: java.lang.NullPointerException
at application.MainController.initialize(MainController.java:62)
... 27 more
最初setCellValueFactory
に開始する行です。必要に応じて
また、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;
}
}