JFileChooser chooser=new JFileChooser();
.
.
.
if(chooser.showSaveDialog(this)== JFileChooser.APPROVE_OPTION)
{
            
      String fileName=new String(filename);
      File file1=new File(fileName);
      if (file1.exists())
            {
               if (JOptionPane.showConfirmDialog(this,"文件  "+fileName+"  已经存在,要替换它吗?","保存为",JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE)==JOptionPane.YES_OPTION)
                {
                   saveCurrentConfig(fileName);
                }
              else
              {
                 /**当用户选择NO时,chooser已经关闭,不能重新修改文件名,只有再次点保存按钮,请问如何实现像word等类似的功能
*/
              }
}

解决方案 »

  1.   

    做个循环,设置一个flag,当flag为true时退出循环。
    默认flag为true,如果这里选择NO了,就设置flag为false,这样就会重新循环调用JFileChooser了。
      

  2.   

    for (boolean flag = false; !flag; ) {
    flag = true; 
    if(chooser.showSaveDialog(this)== JFileChooser.APPROVE_OPTION)
    {

      String fileName=new String(filename);
      File file1=new File(fileName);
      if (file1.exists())
    {
       if (JOptionPane.showConfirmDialog(this,"文件  "+fileName+"  已经存在,要替换它吗?","保存为",JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE)==JOptionPane.YES_OPTION)
    {
       saveCurrentConfig(fileName);
    }
      else
      {
     flag = false; 
      }
    }
    }好像这样。
      

  3.   

    你的方法只是再次打开JFileChooser,而且从界面上能看出这个变化。怎么才能做到和Word等一样呢?(这个方法我也试过的)
      

  4.   

    你可以考虑用java.awt.FileDialog
    Windows系统会自动提示是否覆盖,并实现你说的效果。
    不过你自己的L&F就不好用了。另外,其他操作系统的情况不是很清楚。你的那个对话框本身就是在JFileChooser消失后才出来的吧?btw. 我刚刚看了一下Office XP中的Word,不是你说的那样啊。选择cancel之后,就回到编辑状态了。提示对话框也不是Yes/No,呵呵……
      

  5.   

    好,我试试java.awt.FileDialog,我说的那个效果类似于NotePad,你用记事本试试。谢谢你!
      

  6.   

    嗯,我就使用记事本试验过了才理解了你的需求,给你推荐java.awt.FileDialog的。不过,如果你的程序要跨操作系统,我就不知道是否适用了。