Как получить свойства выбранного файла из JFileChooser

1

У меня есть класс контроллера FXML с текстовым полем, которое я хочу заполнить различными файловыми свойствами файла, который пользователь выбирает с помощью FileChooser.

Контроллер выглядит так:

@FXML
TextField documentName;

File file;

public void attachNewDocFileChooser() {
    file = new MyFileChooser().chooser();
    if (file != null) {
        documentName.setText(file.getName());
    } else {
        documentName.setText("No file selected");
    }
}

FileChooser создается в другом классе MyFileChooser:

@FXML
public File chooser() {
    File file = null;
    final JFileChooser fileDialog = new JFileChooser();

    int returnVal = fileDialog.showOpenDialog(null);
    if (returnVal == JFileChooser.APPROVE_OPTION) {
        file = fileDialog.getSelectedFile();
    }
    return file;
}

Я не могу получить текстовое поле documentName заполненное именем выбранного файла.

Я буду очень благодарен за любую помощь в выполнении этой работы. Спасибо всем заранее.

Обновление: появляется java.lang.NullPointerException.

Я также забыл упомянуть, что chooser() связан с onMouseClicked="#chooser" так, что onMouseClicked="#chooser".

  • 0
    Почему бы не использовать JavaFX FileChooser вместо Swing JFileChooser?
  • 0
    Привет @JoopEggen JoopEggen Eggen. Я заканчиваю то же самое. Разница лишь в том, что я буду использовать FileChooser , но проблема все та же. Я не против того, что я буду использовать, FileChooser или свинг JFileChooser, я просто хочу documentName.setText(file.getName()); из контроллера с FileChooser извлекается из другого класса.
Теги:
textfield
jfilechooser

1 ответ

1
Лучший ответ

Единственное исключение NullPointerException может быть для documentName все еще равным null. То есть, @FXML не работает. Проверьте номер строки для исключения, чтобы убедиться, что это так. И затем загляните в загруженный файл.fxml.

@FXML(name="documentName")
public TextField documentName;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню