Java-апплет в приложении - PullRequest
0 голосов
/ 21 апреля 2011

Я написал клон Snake в процессе обучения программированию на Java. Это апплет, который использует изображения (загружается в метод init () с использованием getImage (getDocumentBase (), "gfx / image.png");

Когда я запускаю апплет в своей среде IDE (Eclipse), он работает нормально, и все изображения отображаются.

Однако моя цель - создать исполняемый файл JAR, который я могу передать проще, чем апплет. Поэтому я создал новый класс и использовал JPanel для размещения своего апплета. Теперь проблема в том, что getDocumentBase () всегда возвращает ноль, в результате чего изображения не обнаруживаются в файловой системе, в результате чего появляется пустой экран.

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

Есть ли способ обойти это? Должен ли я загрузить свои изображения другим способом?

Спасибо

Ответы [ 2 ]

2 голосов
/ 21 апреля 2011

Вы можете загрузить ресурсы из вашего jar-файла, используя метод getResource() из Class. На DevX есть хорошее руководство, показывающее, как это сделать для апплетов и приложений:

http://www.devx.com/tips/Tip/5697

Существует также статья от Oracle, описывающая, как получить доступ к ресурсам независимо от местоположения:

http://download.oracle.com/javase/1.4.2/docs/guide/resources/resources.html

В основном вы получаете доступ к изображению, подобному этому:

URL myurl = this.getClass().getResource("/myimage.gif");
Toolkit tk = this.getToolkit();
img = tk.getImage(myurl);
0 голосов
/ 21 апреля 2011

Вместо этого загрузите ваше изображение:

public void init() {
    URL url = getClass().getResource("/gfx/image.png");
    Image image = getImage(url);
}

Затем добавьте файл gfx/image.png в свой кувшин и сохраните путь. Обратите внимание, что jar-файлы - это просто zip-файлы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...