Проблема преобразования Java-апплета в Jar. Возможно проблема с загрузкой изображения - PullRequest
2 голосов
/ 15 марта 2011

Я пишу апплет в eclipse, и в среде eclipse он работает хорошо.

при создании файла jar из этого проекта начинаются проблемы.

После тестирования jar снесколько вариантов, я думаю, что проблема заключается в загрузке изображения с веб-страницы.

Любые другие функции из апплета, кажется, работают нормально в банке.

Код загрузки изображения в моемПроект выглядит так:

MediaTracker mt = new MediaTracker(this);
String photo = imagePath
URL base = null;
 try { 
 base = getDocumentBase(); 
 } 
 catch (Exception e) {
}
 if(base == null){
      System.out.println("ERROR LOADING IMAGE");
 }
 Image imageBase = getImage(base,photo); 
// Some code that works on the image (not relevant)

   // The rest of the code
    icon.setImage(image);
   imageLabel.setIcon(icon);

Но фляга не может загрузить imgae и не выдает его во время работы, и апплет завис из-за этого.(в отличие от затмения, которое загружает изображение и показывает его)

В чем может быть проблема?

Вторая проблема заключается в том, что из апплета в затмении загрузка занимает несколько секунд.Есть ли способ ускорить процесс?

Спасибо за любую помощь,

1 Ответ

1 голос
/ 15 марта 2011

Я понятия не имею, как это может работать в Eclipse.

Проблема в том, что getDocumentBase () возвращает местоположение страницы, в которую встроен апплет (например, http://some.site.com/index.html), и выпытаемся загрузить изображение из этого места. Очевидно, что нет изображения, только файл HTML (или PHP), и загрузка не удается.

Если ваша цель - загрузить изображение изнутри банки,try:

Image img = null;
try {
    img = ImageIO.read(getClass().getResource("/images/tree.png"));
} catch (IOException ex) {
    System.err.println("Picture loading failed!");
}

где "/images/tree.png" - это путь к файлу изображения в вашем исходном дереве.

EDIT : если вам нужно просто загрузитьизображение из URL, вы можете использовать:

Image img = null;
try {
    img = ImageIO.read(new URL("http://some.site.com/images/tree.png"));
} catch (IOException ex) {
    System.err.println("Picture loading failed!");
}

Этот метод немного лучше, чем Applet.getImage (новый URL (...)) - у меня были некоторые проблемы при загрузке многих изображений.

...