ApacheのPDFBoxとPDFをマージする簡単なSwingアプリケーションについては、JFileChooser
を使用して1つまたは複数のPDFファイルを選択し、JList
に追加しています。 これまでのところ問題ありません。JListにファイルを追加した後にJFileChooserの選択を解除します
ボタンをクリックして別のファイル/ファイルをもう一度追加すると、以前の選択がJFileChooserに残っていることが気になるのですが、最初は空でなければなりません。
私はこれを試してみましたが、それは例外の作品もなくスローどちら:
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のから選択範囲を削除することができますので、ノーファイル/ファイル:ここで
pdfFileChooser.setSelectedFile(null);
は、関連するコードです最初は選択されていますか?
+1現在の選択内容を消去する明示的な方法がない可能性があります。 nullを渡すことでうまくいくと思うかもしれませんが、APIは明らかにその動作を指定していません。私が見つけることができるところには、現在の選択肢をクリアすることについての言及はありません。 –
@Jimは同意しました。 'setSelectedFile'メソッドに' null'を渡した場合に何が起きるかを示す文書はありません – MadProgrammer
ニース、これはうまくいきます。ありがとうございます。 'File currentDirectory = fc.getCurrentDirectory(); //ハックアラート fc.setSelectedFile(新しいファイル( "")); fc.setCurrentDirectory(currentDirectory); ' – devrys