如何从JFileChooser获取所选文件的属性

时间:2014-08-29 08:21:09

标签: java textfield jfilechooser

我有一个FXML控制器类,其中包含一个文本字段,我想要填充用户通过FileChooser选择的文件的各种文件属性。

控制器看起来像:

@FXML
TextField documentName;

File file;

public void attachNewDocFileChooser() {
    file = new MyFileChooser().chooser();
    if (file != null) {
        documentName.setText(file.getName());
    } else {
        documentName.setText("No file selected");
    }
}

FileChooser是在另一个班级MyFileChooser中创建的:

@FXML
public File chooser() {
    File file = null;
    final JFileChooser fileDialog = new JFileChooser();

    int returnVal = fileDialog.showOpenDialog(null);
    if (returnVal == JFileChooser.APPROVE_OPTION) {
        file = fileDialog.getSelectedFile();
    }
    return file;
}

我无法使用所选文件的名称填充文本字段documentName

我非常感谢能帮助你完成这项工作。提前谢谢大家。

更新: 我得到了java.lang.NullPointerException

我也忘了提及chooser()已链接到标签,以便onMouseClicked="#chooser"

1 个答案:

答案 0 :(得分:1)

唯一的NullPointerException可能是documentName仍为null。也就是说,@FXML不起作用。检查异常的行号以查看是否是这种情况。然后查看你加载的.fxml文件。

@FXML(name="documentName")
public TextField documentName;