2013-02-09 16 views
0

在JFileChooser中,當試圖覆蓋文件時,我希望我的程序提示用戶他即將做到這一點。JFileChooser作爲一個JDialog父項

這是在用戶在JFileChooser中按下APPROVE_OPTION時完成的。但是,我不希望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 2013-02-09 21:35:11