You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaFX中是否有返回File类型、类似getSelectedFile的方法?

问题解答

JavaFX 的 FileChooser 不存在和 Swing 组件 JFileChooser.getSelectedFile() 同名、同调用逻辑的方法,但你需要的「获取用户选中的File类型对象」的功能直接内置在弹窗调用方法里。

你当前的代码其实已经拿到了选中的文件对象:FileChooser.showOpenDialog(stage) 方法会在用户完成选择/取消操作前阻塞执行,返回值就是目标结果:

  • 用户选中文件确认后,直接返回对应File类型的对象
  • 用户点击取消关闭弹窗时,返回null

你已经做了非空判断,只需要直接把拿到的file变量赋值给fileToSend[0]即可,不需要额外调用不存在的getSelectedFile()方法。

修正后的完整逻辑代码如下:

@FXML
private void chooseButtonAction(ActionEvent event) throws IOException {

    FileChooser fileChooser = new FileChooser();
    fileChooser.setTitle("Choose a file to send");
    
    Stage stage = (Stage) anchorPane.getScene().getWindow();
    File selectedFile = fileChooser.showOpenDialog(stage);

    if (selectedFile != null) {
        fileToSend[0] = selectedFile;
        fileName.setText("File Name " + selectedFile.getName());
    }

}

注:原代码里把FileChooser实例命名为JFileChooser容易和Swing的同名类混淆,改成小驼峰格式的fileChooser可读性更好,不修改也不会影响功能运行。如果需要支持用户多选文件,把showOpenDialog换成showOpenMultipleDialog(stage)即可,该方法返回值为List<File>类型,对应所有选中的文件对象。


内容的提问来源于stack exchange,提问作者Parvez Ahammed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.12 16:15:51