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

    @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的屏幕截图)
java - 在主窗口中打开文件选择器-Javafx-LMLPHP

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

谢谢。

最佳答案

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

因此,您的解决方案是实际设置primaryStage。但是,如果要快速解决方案,请用以下内容替换File file = fileChooser.showOpenDialog(primaryStage);

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

关于java - 在主窗口中打开文件选择器-Javafx,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32939476/

10-10 16:51