У меня есть функция, которая должна получить путь к файлу, введенному в текстовый ввод jfilechooser
, и передать его String
. Проблема в том, что я хочу проверить перезапись, если файл уже существует. У меня есть представление о том, как это сделать, однако моя проблема заключается в том, что если ответить нет на JOptionPane
, JFileChooser
все равно закроется, потому что кнопка сохранения уже была нажата. Теперь мне нужно, чтобы при ответе нет программа возвращалась к JFileChooser
, по-прежнему запрашивая имя.
Обратите внимание, что я ищу эффективное решение, я уже рассматривал возможность повторного выполнения функции, но, поскольку моя программа довольно большая, такой способ решения требует времени и не будет эффективным.
Вот код моей функции, еще не завершенный, потому что я не знаю, как с ним обращаться.
`public String FileSavePath()throws NullPointerException
{
File f=null;
String theFilepath=null;
JFileChooser FileChooser = new JFileChooser();
if(FileChooser.showSaveDialog(null)==JFileChooser.APPROVE_OPTION)
{
theFilepath=FileChooser.getSelectedFile().getAbsolutePath();
f=FileChooser.getSelectedFile();
//System.out.println(theFile);
if(f.exists())
{
int result = JOptionPane.showConfirmDialog(this,"The file exists, overwrite?",
"Existing file",JOptionPane.YES_NO_CANCEL_OPTION);
if(result==JOptionPane.YES_OPTION)
{
return theFilepath;
}
else // here is what I should do if the user answers 'no' or cancels/closes the JOptionPane
}
else return null;
return theFilepath;
}`