我可以使用以下代码打开文件选择器
@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的屏幕截图)
任何人都可以告诉我如何打开文件选择器,如屏幕截图所示(如顶层)?
感谢。
答案 0 :(得分:3)
您的文件选择器没有附加到primaryStage
的原因是因为primaryStage
是null
。你永远不会设定它的价值。当此参数为null
时,文件选择器将在没有父项的情况下浮动。
所以你的解决方案是实际设置primaryStage
。但是,如果您想要快速解决方案,请将File file = fileChooser.showOpenDialog(primaryStage);
替换为:
File file = fileChooser.showOpenDialog(((Node) event.getTarget()).getScene().getWindow());