我可以使用以下代码打开文件选择器
@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 更新程序的屏幕截图)
谁能告诉我应该如何打开屏幕截图中所示的文件选择器(如顶层)?
谢谢。
您的文件选择器未附加到您的原因是primaryStage
因为. 你从来没有设置过它的值。当此参数为 时,文件选择器将在没有父项的情况下浮动。primaryStage
null
null
所以你的解决方案是实际设置primaryStage
. 但如果您想要快速解决方案,请替换File file = fileChooser.showOpenDialog(primaryStage);
为:
File file = fileChooser.showOpenDialog(((Node) event.getTarget()).getScene().getWindow());
Run Code Online (Sandbox Code Playgroud)