Как добавить изображение динамически во время выполнения в Java - PullRequest
0 голосов
/ 15 апреля 2010

Я пытался загружать изображение динамически во время выполнения в течение самого длительного времени и посмотрел другие посты на этом сайте, но пока не нашел именно то, что будет работать. Я пытаюсь загрузить изображение во время работы моего графического интерфейса (во время выполнения) и пробовал разные вещи. Прямо сейчас я обнаружил, что самый простой способ создать изображение - это использовать JLabel и добавить к нему ImageIcon. Это сработало, но когда я иду, чтобы загрузить его после запуска графического интерфейса, он не может сказать, что существует «NullPointerException». Вот код, который у меня есть:

p = Runtime.getRuntime().exec("python C:\\FaceVACS\\roc.py " + "C:/FaceVACS/OutputCMC_" + target + ".txt " + "C:/FaceVACS/ROC_" + target + ".png");
Icon graph = new ImageIcon("C:\\FaceVACS\\OutputCMC_" + target + ".png");
roc_image.setIcon(graph);
panel.add(roc_image);
panel.revalidate();
gui.frame.pack();

Я пробовал panel.validate (), panel.revalidate (), а также пробовал gui.getRootPane (), но не могу найти ничего, что будет работать.

Любые идеи будут полезны! Спасибо

Ответы [ 3 ]

2 голосов
/ 15 апреля 2010

, который просто запускает скрипт Python, который сохраняет изображение, которое я хочу опубликовать

Похоже, проблема в том, что код пытается загрузить изображение до того, как скрипт python завершит его создание. Попробуйте:

Process p = Runtime.getRuntime().exec("...");
p.waitFor();
Icon icon = new ImageIcon(...);
2 голосов
/ 15 апреля 2010

getRuntime().exec для запуска внешней программы. Чтобы просто загрузить файл для использования в приложении Java, вы можете просто обработать его как любой другой файл. В самом деле, если вы используете Swing, конструктор ImageIcon примет в качестве аргумента строку, содержащую путь к файлу.

Как добавить изображение в JPanel?

Приведенный выше вопрос объясняет, как добавить изображение в JPanel, и это может быть сделано во время выполнения обработчиком события.

0 голосов
/ 15 апреля 2010

Вы также можете использовать метки для отображения изображений. Этот учебник показывает вам, как.

...