想实现一个文件保存时检查的功能,文件已存在时弹出一个提示框(类似Execl中的"另存为"),但是用
if (retval == JFileChooser.APPROVE_OPTION)判断选择状态后,JFilechooser画面也关闭了,有什么方法使其不关闭吗?还是有其它的实现方法?

解决方案 »

  1.   

    JFileChooser jfc = new JFileChooser();
    jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);
    jfc.setMultiSelectionEnabled(false);while (true) {
    int r = jfc.showSaveDialog(null);
    if (r == JFileChooser.APPROVE_OPTION) {
    File file = jfc.getSelectedFile();
    if (file.exists()) {
    int t = JOptionPane.showConfirmDialog(null,
    "File exists, overwrite?", "Overwrite?",
    JOptionPane.YES_NO_OPTION);
    if (t != JOptionPane.YES_OPTION) {
    continue;
    }
    }

    System.out.println(file);
    break;
    }
    else {
    break;
    }
    }
      

  2.   

    终于有等到你了!!!
    我试了一下,在调用"JOptionPane.showConfirmDialog(null,
    "File exists, overwrite?", "Overwrite?",
    JOptionPane.YES_NO_OPTION);"时,JFileChooser的画面还是没有了?是disable了吗?
    ConfirmDialog和JFileChooser不能同时存在吗?
      

  3.   

    import java.io.File;import javax.swing.JFileChooser;
    import javax.swing.JOptionPane;public class T {
    public static void main(String[] args) {
    JFileChooser jfc = new JFileChooser() {
    public void approveSelection() {
    File file = getSelectedFile();
    if (file.exists()) {
    int t = JOptionPane.showConfirmDialog(this,
    "File exists, overwrite?", "Overwrite?",
    JOptionPane.YES_NO_OPTION);
    if (t != JOptionPane.YES_OPTION) {
    return;
    }
    } super.approveSelection();
    }
    };
    jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);
    jfc.setMultiSelectionEnabled(false); int r = jfc.showSaveDialog(null);
    if (r == JFileChooser.APPROVE_OPTION) {
    File file = jfc.getSelectedFile();
    System.out.println(file);
    }
    }
    }
      

  4.   

    to gtlang78():
    果然是高手呀,谢谢了!