Не удается отобразить изображения с локального хоста - PullRequest
0 голосов
/ 13 мая 2011

Я не понимаю, почему в моем webAPP, когда я пытаюсь загрузить Icon, делая это для примера:

ImageIcon rtfIcon = new ImageIcon("http://localhost:8080/app/images/rtf.gif"); 

rtfIcon.getImageLoadStatus () возвращает значение ERRORED.

Но в моем веб-браузере он отображается правильно http://localhost:8080/app/images/rtf.gif. Я не понимаю Я использую Apache Tomcat. Есть ли какая-либо опция конфигурации, или это простая ошибка кодирования?

спасибо заранее.

1 Ответ

3 голосов
/ 13 мая 2011
ImageIcon rtfIcon = new ImageIcon("http://localhost:8080/app/images/rtf.gif"); 

Предполагается, что String относится к File. Использовать вместо ..

ImageIcon rtfIcon = new ImageIcon(
    new URL("http://localhost:8080/app/images/rtf.gif"));

.. или, с учетом совета от BalusC ..

"Апплет не сможет работать всякий раз, когда веб-сервер работает на физически другой машине (в производстве). Вместо этого используйте getCodeBase(), чтобы получить URL-адрес хоста, с которого был получен апплет, а затем продолжить его сборку. «

ImageIcon rtfIcon = new ImageIcon(
    new URL(getCodeBase(), "/app/images/rtf.gif"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...