powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / картинку на диалог
7 сообщений из 7, страница 1 из 1
картинку на диалог
    #39478407
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Пытаюсь добавить на динамическую форму картинку формата .jpg, но у меня что-то никак не выходит.
Нашел, как мне кажется, очень простой мануальчик с примерами, которые хочу реализовать.
например, взял Text Input Dialog оттуда, погуглил, что у класса TextInputDialog есть метод setGraphic, позволяющий на форму пихать картинку. Ну сделал вроде все верно, но ошибка непонятная мне

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
 public void start(Stage myStage) throws Exception {

        TextInputDialog dialog = new TextInputDialog("walter");
        dialog.setTitle("Text Input Dialog");
        dialog.setHeaderText("Look, a Text Input Dialog");
        dialog.setContentText("Please enter your name:");
        dialog.setGraphic(new ImageView(new Image(this.getClass().getResourceAsStream("../captcha.jpg"))));
    }



Код: plaintext
Ошибка:Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException: Input stream must not be null
at javafx.scene.image.Image.validateInputStream(Image.java:1128)
at javafx.scene.image.Image.<init>(Image.java:706)
at AllClasses.UpdateTaskDemo.start(UpdateTaskDemo.java:37)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
... 1 more
так же пробовал массу других вариантов, ошибка время одна.
причем? если продежабить получение ресурса, то значение там null

Картинку храню вот так


может кто сталкивался и знает ответ?
...
Рейтинг: 0 / 0
картинку на диалог
    #39478409
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
 public void start(Stage myStage) throws Exception {

        TextInputDialog dialog = new TextInputDialog("walter");
        dialog.setTitle("Text Input Dialog");
        dialog.setHeaderText("Look, a Text Input Dialog");
        dialog.setContentText("Please enter your name:");
        dialog.setGraphic(new ImageView(new Image(this.getClass().getResourceAsStream("../captcha.jpg"))));
    }



Код: plaintext
Ошибка:
Caused by: java.lang.NullPointerException: Input stream must not be null

... 1 more
так же пробовал массу других вариантов, ошибка время одна.
причем? если продежабить получение ресурса, то значение там null

Картинку храню вот так


может кто сталкивался и знает ответ?

Судя по ошибкам просто не находит вашу картинку.
Запустите отладчик убедитесь, что
Код: java
1.
this.getClass().getResourceAsStream("../captcha.jpg")


возвращает не null.
...
Рейтинг: 0 / 0
картинку на диалог
    #39478412
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще в примере, на который вы ссылаетесь код такой
Код: java
1.
dialog.setGraphic(new ImageView(this.getClass().getResource("login.png").toString()));



а у вас такой
Код: java
1.
dialog.setGraphic(new ImageView(new Image(this.getClass().getResourceAsStream("../captcha.jpg"))));



Не тут ли зарыта собака?
...
Рейтинг: 0 / 0
картинку на диалог
    #39478418
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio,
this.getClass().getResourceAsStream() загружает ресурсы из Class-Path.
Ваша IDE об этих файлаз ничего не знает. При компилировании ваши .java файлы становятся .class файлами и лежат внутри директории out. Если вы её откроете, то вашего jpg там, скорее всего, не найдёте.

В IntelliJ IDEA вы можете добавить корневую директорию как директорию ресурсов. Хотя это немного криво, так как в ресурсы вообще попадут все файлы. Лучше завести отдельный каталог.

Другие варианты
- скопировать jpg внутрь src и прописать в настройках IntelliJ учитывать jpg файлы как ресуры при компиляции и копировать их в out
- использовать FileInputStream чтобы читать из текущего рабочего каталога, а не из class-path
- начать изучать актуальные инструменты сборки, такие как Maven и Gradle

Вариант с инструментами сборки самый сложный, но самый актуальный.
...
Рейтинг: 0 / 0
картинку на диалог
    #39478484
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczwolfio,
this.getClass().getResourceAsStream() загружает ресурсы из Class-Path.
Ваша IDE об этих файлаз ничего не знает. При компилировании ваши .java файлы становятся .class файлами и лежат внутри директории out. Если вы её откроете, то вашего jpg там, скорее всего, не найдёте.

В IntelliJ IDEA вы можете добавить корневую директорию как директорию ресурсов. Хотя это немного криво, так как в ресурсы вообще попадут все файлы. Лучше завести отдельный каталог.

Другие варианты
- скопировать jpg внутрь src и прописать в настройках IntelliJ учитывать jpg файлы как ресуры при компиляции и копировать их в out
- использовать FileInputStream чтобы читать из текущего рабочего каталога, а не из class-path
- начать изучать актуальные инструменты сборки, такие как Maven и Gradle

Вариант с инструментами сборки самый сложный, но самый актуальный.

Большое спасибо. Выбрал вариант использования FileInputStream.

Blazkowiczтакие как Maven и Gradle
я по вашей рекомендации уже попробовал на Gradle GRPC коннект сделать. Ввиду того, что делаю все это на работе, где корп.файервол лочит кучу ресурсов без разбора, половина связей по Мавеновским и Грэдловским проектам просто недоступны. Это очень печалит..

Как ни странно, но в настройках Intellij как раз jpg и прописан в тип файла Image.
...
Рейтинг: 0 / 0
картинку на диалог
    #39478492
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfioКак ни странно, но в настройках Intellij как раз jpg и прописан в тип файла Image.
Это среда просто знает что jpg - изображение.
Но копировать оно его при компиляции не будет:
File -> Settings -> Build, Execution, Deployment -> Compiler -> Resource patterns. Там нет jpeg/jpg.
Если туда, добавить, то файл будет скопировать, при условии что он у вас находится вместе с исходниками, а не отдельно как сейчас.

Но это старый способ. Лучше в модуле добавить каталог с ресурсами.
...
Рейтинг: 0 / 0
картинку на диалог
    #39478494
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfioЭто очень печалит..
Ну, если вы можете скачать библиотеки как-то иначе, то ничего не мешает вам установить их в локальный репозиторий. Хотя, конечно, это геморрой.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / картинку на диалог
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]