我正在使用JavaFX编写Java程序。我在FirstWindow.fxml中有一张表;当我从该表中选择一个项目并按“显示ID”按钮时,它应该打开一个新窗口(SecondWindow.fxml),并在按下“ showIdButton”按钮时在“ selectedIdLabel”中显示ID。但是id始终为0。
这个问题第一次出现时,我在这里进行搜索,显然我没有在SecondWindowController的Parent root = (Parent) loader.load();
之前添加FirstWindowController fwc = loader.getController();
行。添加该行代码后,没有任何更改。我也知道fwc不是null,所以也不是因为这个原因。
这里是FirstWindowController:
@FXML
void showIdButtonPressed(ActionEvent event) throws IOException{
Stage primaryStage = new Stage();
selectedItem=itemsTable.getSelectionModel().getSelectedItem();
if(selectedItem==null){
//Shows a warning to the user
}else{
//itemId is public
itemId=selectedItem.getId();
FXMLLoader loader = new FXMLLoader(getClass().getResource("SecondWindow.fxml"));
Parent root = loader.load();
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.initModality(Modality.APPLICATION_MODAL);
primaryStage.show();
}
}
这是SecondWindowController:
@FXML
void showIdButton(ActionEvent event) throws IOException {
FXMLLoader loader = new FXMLLoader(getClass().getResource(
"FirstWindow.fxml"));
Parent root = (Parent) loader.load();
FirstWindowController fwc = loader.getController();
int itemId=fwc.itemId;
selectedIdLabel.setText("Id : "+itemId);
}