Как описано в заголовке ...
@FXML
private TableView<Product> table;
@FXML
private TableColumn<Product, String> iname;
@FXML
private TableColumn<Product, String> ilast;
@FXML
private TableColumn<Product, String> iid;
public ObservableList<Product> data = FXCollections.observableArrayList(
new Product("John", "Smith", "23")
);
@Override
public void initialize(URL location, ResourceBundle resources) {
iname.setCellValueFactory(new PropertyValueFactory<Product, String>("name"));
ilast.setCellValueFactory(new PropertyValueFactory<Product, String>("lastname"));
iid.setCellValueFactory(new PropertyValueFactory<Product, String>("id"));
table.setItems(data);
}
public void addItems(String name, String lastname, String id) {
Product p = new Product(name, hwid, core, os, proc);
data.add(p);
getTable().refresh();
}
public TableView<Product> getTable() {
return table;
}
table.setItems (данные);
Работает нормально, но если я пытаюсь обновить таблицу методом получения, я получаю исключение NullPointerException.
Можете ли вы помочь мне?
Как вы вызываете getTable (или addItems)? Я предполагаю, что используется экземпляр контроллера, который не используется с fxml ...
MainController m = новый MainController (); Продукт e = новый продукт («Джон», «Смит», «21»); m.data.add (e); m.addItems («Джон», «Смит», «213»);
И вот ошибка:
Исключение в потоке «Thread-4» java.lang.NullPointerException в application.MainController.addItems (MainController.java:65) в me.jan.utils.ThreadServer.run (ThreadServer.java:33)
m.addItems будет открыт в потоке




Можете ли вы опубликовать трассировку стека?