无法从JavaFX中的控制器获取变量

时间:2019-05-26 09:27:23

标签: java javafx fxml

我正在使用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);
}

0 个答案:

没有答案