JavaFX error-dialog не отображается в исполняемом jar-файле из-за изменения графики - PullRequest
0 голосов
/ 09 июня 2018

Я сделал диалог ошибки JavaFX и изменил изображение по умолчанию.

Вначале это выглядело нормально, но когда я экспортировал проект как запускаемый * .jar, этот диалог просто больше не появлялся.

Я подумал, что когда я пропускаю изображение, все работает нормально, но это не решение для меня.

Код

public static void alert() throws IOException {
    Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
    alert.setTitle("FATAL ERROR");
    alert.setHeaderText("/*Error message*/");

    ImageView alertImage = new ImageView(new Image(new FileInputStream(new File("*/Image-path*/"))));   
    alert.setGraphic(alertImage);

    alert.setContentText("/*query*/");

    //Button funktions
    Optional<ButtonType> result = alert.showAndWait();

    if (result.isPresent() && (result.get() == ButtonType.OK)) {
        /*unimportant code*/
    }

    if (result.isPresent() && (result.get() == ButtonType.CANCEL)) {
        /*unimportant code*/
    }

}

1 Ответ

0 голосов
/ 09 июня 2018

Создайте свое изображение следующим образом:

ImageView alertImage = new ImageView(getClass().getResource("/Images/image.png").toExternalForm());   

Он использует конструктор ImageView(String url), который загрузит для вас Image.Поскольку папка Images находится внутри jar, getResource вернет «специальный» URL-адрес этого файла.Вы не можете ссылаться на него как файл, поскольку JAR - это единственный файл, содержащий изображение, отдельного файла изображения не существует.

...