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等类似的功能
*/
}
}
.
.
.
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等类似的功能
*/
}
}
默认flag为true,如果这里选择NO了,就设置flag为false,这样就会重新循环调用JFileChooser了。
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;
}
}
}好像这样。
Windows系统会自动提示是否覆盖,并实现你说的效果。
不过你自己的L&F就不好用了。另外,其他操作系统的情况不是很清楚。你的那个对话框本身就是在JFileChooser消失后才出来的吧?btw. 我刚刚看了一下Office XP中的Word,不是你说的那样啊。选择cancel之后,就回到编辑状态了。提示对话框也不是Yes/No,呵呵……