0

我制作了一个按钮,它将创建一个 JFileChooser,以便用户可以打开一个 .txt 文件,这是按钮的动作侦听器内的代码:

JFileChooser fc = new JFileChooser();
    //filter-show only .txt files
    FileNameExtensionFilter txtfilter = new FileNameExtensionFilter("txt files (*.txt)", "txt");

    //apply the filter to file chooser
    fc.setFileFilter(txtfilter);
    fc.setDialogTitle("Otvori txt file");
    //disable the ability to show files of all extensions
    fc.setAcceptAllFileFilterUsed(false);
    //create file chooser via jFrame
    fc.showOpenDialog(jFrame);
    //get selected file
    File selFile = fc.getSelectedFile();
    Path path = Paths.get(selFile.toString());
    asdf = selFile.toString();
    //display chosen file on jLabel5
    jLabel5.setText(path.getFileName().toString());

如果您在文件选择器中选择 .txt 文件,它工作得很好,但如果您只选择一个文件然后按取消并退出,它也可以工作。我认为这是因为 getSelectedFile() 但我想知道是否有办法确保用户选择一个文件并在文件选择器中按下打开作为获取文件的条件?

4

1 回答 1

8

您应该检查返回值是否来自:

fc.showOpenDialog(jFrame) == JFileChooser.APPROVE_OPTION

该返回值指示用户如何退出对话框。

请参阅JFileChooser.showOpenDialog(Component)文档。

于 2012-12-08T16:34:31.800 回答