在主窗口中打开文件选择器 - Javafx

时间:2015-10-04 23:33:09

标签: java javafx

我可以使用以下代码打开文件选择器

    @FXML
    private TextField myText;

    @FXML
    private Button browse;
    private Window primaryStage;


    @FXML
    private void initialize(){

        browse.setOnAction((event) -> {
            FileChooser fileChooser = new FileChooser();
            File file = fileChooser.showOpenDialog(primaryStage);
            String fileName = String.valueOf(file);
            myText.setText(fileName);
        });

    }

但是我试图打开这样的文件选择器(Microsoft updater的屏幕截图) enter image description here

任何人都可以告诉我如何打开文件选择器,如屏幕截图所示(如顶层)?

感谢。

1 个答案:

答案 0 :(得分:3)

您的文件选择器没有附加到primaryStage的原因是因为primaryStagenull。你永远不会设定它的价值。当此参数为null时,文件选择器将在没有父项的情况下浮动。

所以你的解决方案是实际设置primaryStage。但是,如果您想要快速解决方案,请将File file = fileChooser.showOpenDialog(primaryStage);替换为:

File file = fileChooser.showOpenDialog(((Node) event.getTarget()).getScene().getWindow());