PDF を Apache PDFBox とマージするための単純な Swing アプリケーションの場合、 を使用しJFileChooser
て 1 つまたは複数の 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 から選択を削除するにはどうすればよいですか?