Что ж, у меня есть метод возврата пути с помощью JFileChooser, я хочу сохранить этот путь в переменной, чтобы затем изменить File. Но когда я вызываю метод в кнопке JFrame со строкой: tf.guardarTareasHash(operator.obtenerTabla(), "modificar", tf.path());, я понимаю, что снова открываю FileDialog, чтобы выбрать файл.
Я хотел использовать tf.path() для отправки как параметр, но я не ожидал, что он снова откроет JFileChooser. Строка operator.obtenerTabla() отправляет Hashtable, а модификар — это String, которое я отправляю для проверки в условном выражении, сохранит ли программа новый файл или изменит его.
public String path(){
JFileChooser jfc = new JFileChooser();
jfc.setCurrentDirectory(new
File("C:\\Users\\ARCANET\\Documents\\NetBeansProjects\\hash\\tareas"));
jfc.showOpenDialog(jfc);
String ruta = jfc.getSelectedFile().getAbsolutePath();
return ruta;
}
¿Можно ли как-то сохранить путь к выбранному файлу без повторного открытия OpenDialog? Я подумал сделать для него переменную static.




Если я правильно вас понял, вы хотите
tf.guardarTareasHash(operator.obtenerTabla(), "modificar", tf.path());
чтобы не открывать диалог файла снова. В этом случае вам нужно сохранить результат вашего метода пути при первом его вызове и передать результат позже в качестве третьего параметра вместо повторного вызова метода пути.
class MyClass {
String myPath = null;
...
// call the path method which opens the file dialog
myPath = path();
...
// use the saved result
tf.guardarTareasHash(operator.obtenerTabla(), "modificar", myPath);
}
Вам все еще нужно реализовать проверки, что делать, если myPath не инициализирован (например, пользователь отменяет диалоговое окно файла)
Что ж, я сделал что-то другое. Я сохранил путь, загруженный в «jLabel», чтобы затем передать его как параметр с получением текста из метки компонента. Но «myPath» должен быть
static, иначе значение не сохранится.