2011-12-20 7 views
3

JavaアプリケーションでJFileChooserを使用しています。選択したファイルがすでに存在する場合、ファイルを上書きするかどうか尋ねる必要がありますか?JFileChooserと上書きを確認する

使用できる機能はありますか?または自分のロール?私はSwingとJDK 1.4を使用しています

+0

[JFileChooserと確認ダイアログ付き]の複製(http://stackoverflow.com/questions/3651494/jfilechooser-with-confirmation-dialog) – Suma

答えて

8

デフォルトのものにはその機能がありません。あなた自身で作成する必要があります。またはsomeone else'sを使用してください。

private class CustomFileChooser extends JFileChooser { 
    private String extension; 
    public CustomFileChooser(String extension) { 
    super(); 
    this.extension = extension; 
    addChoosableFileFilter(new FileNameExtensionFilter(
     String.format("%1$s Images (*.%1$s)", extension), extension)); 
    } 

    @Override public File getSelectedFile() { 
    File selectedFile = super.getSelectedFile(); 

    if (selectedFile != null) { 
     String name = selectedFile.getName(); 
     if (!name.contains(".")) 
     selectedFile = new File(selectedFile.getParentFile(), 
      name + '.' + extension); 
    } 

    return selectedFile; 
    } 

    @Override public void approveSelection() { 
    if (getDialogType() == SAVE_DIALOG) { 
     File selectedFile = getSelectedFile(); 
     if ((selectedFile != null) && selectedFile.exists()) { 
     int response = JOptionPane.showConfirmDialog(this, 
      "The file " + selectedFile.getName() + 
      " already exists. Do you want to replace the existing file?", 
      "Ovewrite file", JOptionPane.YES_NO_OPTION, 
      JOptionPane.WARNING_MESSAGE); 
     if (response != JOptionPane.YES_OPTION) 
      return; 
     } 
    } 

    super.approveSelection(); 
    } 
} 
関連する問題