Возврат пути с помощью JFileChooser

Что ж, у меня есть метод возврата пути с помощью 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.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
37
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если я правильно вас понял, вы хотите

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, иначе значение не сохранится.

herMa694 16.04.2019 22:14

Другие вопросы по теме