我正在使用Apache PDFBox创建一个简单的Swing应用程序来合并PDF,使用 JFileChooser
来选择一个或多个PDF文件并将其添加到 JList
中。
到目前为止还没有问题。
让我困扰的是,当我再次点击按钮添加另一个文件时,JFileChooser 中仍然保留之前的选择,我不希望出现这种情况,初始选择应为空。
我尝试了以下操作,但它既不起作用也不抛出异常:
pdfFileChooser.setSelectedFile(null);
以下是相关代码:
pdfFileChooser.setAcceptAllFileFilterUsed(false);
pdfFileChooser.setMultiSelectionEnabled(true);
pdfFileChooser.setFileFilter(new FileFilter() {
@Override
public boolean accept(File arg0) {
return arg0.getName().endsWith(".pdf");
}
@Override
public String getDescription() {
return "*.pdf";
}
} );
JButton btnAddFile = new JButton("Add file");
btnAddFile.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if(pdfFileChooser.showOpenDialog(frame) == JFileChooser.APPROVE_OPTION) {
addFileToList(pdfFileChooser.getSelectedFiles());
pdfFileChooser.setSelectedFile(null);
}
}
});
private void addFileToList(File[] filesToAdd) {
if((filesToAdd != null) && (filesToAdd.length > 0)) {
DefaultListModel model = (DefaultListModel)listFiles.getModel();
for(File file : filesToAdd) {
if(!model.contains(file)) {
model.addElement(file);
}
}
}
}
如何从 JFileChooser 中移除所选内容,以便没有文件被初始选中?
null
传递给setSelectedFile
方法会发生什么。 - MadProgrammerFile currentDirectory = fc.getCurrentDirectory(); // Hack alert fc.setSelectedFile(new File("")); fc.setCurrentDirectory(currentDirectory);
- devrys