Я пытаюсь заполнить TableView из вызова метода нажатием кнопки из модального окна. Надеюсь, это возможно, но мне не повезло. TableView уже создан в файле FXML. Всякий раз, когда я вызываю метод, я получаю исключение нулевого указателя. Любые идеи или предложения? Извините, если мой формат вопроса плох, я не задаю много вопросов.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>
Ошибка: Вызванный: java.lang.NullPointerException в ims.MainController.getPartData (MainController.java : 112)
Я использую IntelliJ, и я создаю свою сцену/сцену в Scene Builder. Я прошу прощения, если это действительно просто, и я что-то пропускаю, но мне просто сложно это понять.
Заранее благодарим за ваше время и помощь!
Не видя класс 'Part', мне трудно понять, где именно может произойти ошибка. Одна из таких ошибок может заключаться в том, что функция 'getId()', которая возвращает 'Integer', не имеет функции, но может возвращать' int', и это определенно имеет значение. Правильно отрегулируйте это правильно. Вся информация, расположенная на документах 'PropertyValueFactory' hocs: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/cell/PropertyValueFactory.html параграфах. –
1. Опубликуйте полную трассировку стека. 2. Отправьте код для контроллера для модального окна. Как вы получаете ссылку на главный контроллер на этот контроллер? –