我可以使用以下代码打开文件选择器
@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的屏幕截图)
谁能告诉我该如何打开如屏幕快照所示的文件选择器(如顶层)?
谢谢。
最佳答案
您的文件选择器未附加到primaryStage
的原因是primaryStage
是null
。您永远不会设置其值。当此参数为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/