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

Aks*_*hay 1 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);
        });

    }
Run Code Online (Sandbox Code Playgroud)

但我正在尝试打开类似这样的文件选择器(Microsoft 更新程序的屏幕截图) 在此输入图像描述

谁能告诉我应该如何打开屏幕截图中所示的文件选择器(如顶层)?

谢谢。

JVo*_*Von 5

您的文件选择器未附加到您的原因是primaryStage因为. 你从来没有设置过它的值。当此参数为 时,文件选择器将在没有父项的情况下浮动。primaryStagenullnull

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

File file = fileChooser.showOpenDialog(((Node) event.getTarget()).getScene().getWindow());
Run Code Online (Sandbox Code Playgroud)