我创建了一个创建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(),但我想知道是否有办法确保用户选择一个文件并在文件选择器中按下打开作为获取文件的条件?
答案 0 :(得分:8)
您应该检查返回值是否来自:
fc.showOpenDialog(jFrame) == JFileChooser.APPROVE_OPTION
该返回值表示用户退出对话框的方式。