2013-02-09 1 views
0

В JFileChooser при попытке перезаписать файл я хочу, чтобы моя программа запрашивала у пользователя, что он собирается это сделать.JFileChooser как родитель JDialog

Это должно быть сделано, когда пользователь нажал APPROVE_OPTION в JFileChooser.

Однако я не хочу, чтобы JFileChooser закрывался немедленно, но если такой файл уже существует, отобразите JDialog, который затем, если пользователь захочет перезаписать, перезаписать, иначе закрыть JDialog и вернуться к JFileChooser.

Я знаю, что перед открытием JDialog я могу сохранить условие JFileChooser, и если пользователь не захочет перезаписывать, просто воссоздайте весь JFileChooser, используя сохраненную мной информацию.

Но мне было интересно, был ли более простой способ. Здесь?

ответ

3

Вы должны иметь возможность переопределить метод approveSelection().

final JFileChooser chooser = new JFileChooser(new File(".")) 
{ 
    public void approveSelection() 
    { 
     if (getSelectedFile().exists()) 
     { 
      System.out.println("Do You Want to Overwrite File?"); 
      return; 
     } 
     else 
      super.approveSelection(); 
    } 
}; 

Вместо отображения сообщения вы можете запросить у пользователя JOptionPane. Если пользователь принимает, то вы вызываете super.approveSelection();

+0

Спасибо, что сделал трюк! – Karlovsky120