通过javafxs中的不同窗口传递数据

时间:2017-08-01 17:52:14

标签: java javafx

这是我的项目结构。 [projectStructure] [1]

这里有更多的项目。 MainController:

FileOpeniongFunction(){
    File selectedFile=fc.showOpenDialog(null);
    filePath = selectedFile.getAbsolutePath().toString();
    if(selectedFile !=null){
        mylistview.getItems().add(selectedFile.getName());
    }
    else {
    System.out.println("File is not valid");
    }
}

@FXML
private void unzipitems(ActionEvent event) throws IOException {
    if(!filePath.isEmpty()){
        progressbox.display(filePath);
    }
}

和ProgressBoxController:

   public void display(String zipFilePath) throws IOException {

    Stage window = new Stage();
    Parent root = 
             FXMLLoader.load(getClass().getResource("/view/progress.fxml"));

    window.initModality(Modality.APPLICATION_MODAL);
    Scene scene = new Scene(root);

    window.setScene(scene);
    window.showAndWait();

    unzipper.unzip(zipFilePath);

}

我想让showAndWait和unzipper.unzip同时工作。但只有一个接一个地运行。我尝试将unzipper.unzip()放在ProgressBoxController的初始化中,但是我无法将“filePath”放到该控制器上。

0 个答案:

没有答案