モーダルウィンドウからボタンをクリックしてメソッド呼び出しからTableViewを作成しようとしています。私はこれが可能だと思うが、私は運がない。 TableViewは既にFXMLファイルで作成されています。メソッドを呼び出すたびに、nullポインタ例外が発生します。任意のアイデアや提案?申し訳ありませんが、私の質問形式が悪い場合、私は多くの質問をしません。JavaFXモーダルウィンドウフォームのメイン画面にTableViewを設定する
MainController.java
@FXML TableView<Part> partsTableView;
@FXML ObservableList<Part> parts;
@FXML public TableColumn<Part, Integer> partIDColumn;
@FXML public TableColumn<Part, String> partNameColumn;
@FXML public TableColumn<Part, Integer> partILColumn;
@FXML public TableColumn<Part, Double> partPriceColumn;
@FXML
public void getPartData(){
partIDColumn.setCellValueFactory(new PropertyValueFactory<>("id")); (Line 112)
partNameColumn.setCellValueFactory(new PropertyValueFactory<>("name"));
partILColumn.setCellValueFactory(new PropertyValueFactory<>("instock"));
partPriceColumn.setCellValueFactory(new PropertyValueFactory<>("price"));
partsTableView.setItems(generateData());
}
private ObservableList<Part> generateData(){
parts = FXCollections.observableArrayList();
parts.add(new Part(0, "Part" , 1 , 25.00));
return parts;
}
main.fxml
<TableView fx:id="partsTableView" layoutX="13.0" layoutY="68.0" prefHeight="344.0" prefWidth="556.0">
<columns>
<TableColumn fx:id="partIDColumn" editable="false" prefWidth="138.0" resizable="false" text="Part ID" />
<TableColumn fx:id="partNameColumn" editable="false" prefWidth="139.0" resizable="false" text="Part Name" />
<TableColumn fx:id="partILColumn" editable="false" prefWidth="119.0" resizable="false" text="Inventory Level" />
<TableColumn fx:id="partPriceColumn" editable="false" prefWidth="159.0" resizable="false" text="Price/Cost Per Unit" />
</columns>
</TableView>
エラー:によって引き起こさ:ims.MainController.getPartDataでjava.lang.NullPointerExceptionが (MainController.java :112)
私はIntelliJを使用しています。私はScene Builderでステージ/シーンを構築しています。これが本当にシンプルで何かを見落としているのであれば、お詫び申し上げますが、これを理解するのに苦労しているだけです。
ご協力いただきありがとうございます。
'Part'クラスを見ずに、どこでエラーが発生するかを正確に見ることができます。このようなエラーの1つは、 'Integer'を返す' getId() '関数がなく、むしろ' int'を返す可能性があることです。それに応じて調整してください。すべての情報は、PropertyValueFactoryドキュメントhttps://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/cell/PropertyValueFactory.html紹介段落にあります。 –
1.完全なスタックトレースをポストします。 2.モーダルウィンドウのコントローラのコードをポストします。どのようにメインコントローラーへの参照をそのコントローラーに取得していますか? –