2013-07-26 3 views
0

Я хочу, чтобы отобразить значок изображения в моей applet.I создал пакет ресурсов и сохранили мой образ в .Так что я попробовал: -Java Applet Image Load

Image logo;//I declare globally 
logo = getImage("logo.jpg");//I initialize in the constructor 

И я использую это proceedure

public Image getImage(String name){ 
       URL imgUrl = getClass().getClassLoader().getResource("resources/"+name); 
       ImageIcon icon = new ImageIcon(imgUrl); 
       return icon.getImage(); 
      } 

public void paint(Graphics g) 
     { 
      if (logo!=null){ 
        g.drawImage(logo, 30, 30, null); 
       } 
      g.drawString("Hwllo", 12, 12); 
     } 

Тогда я называю:

repaint() //In the Constructor 

Но я не вижу изображение или мою String.Какой может быть проблема. Более простой способ загрузки изображений в апплет?

+0

Я думаю, что [SSCCE] (http://sscce.org/) будет полезнее – MadProgrammer

+0

SSCCE помог! В основном изображение загружалось, но у меня было куча панелей, скрывающих его. –

+0

Это одна из причин, по которой мы предлагаем избегать переопределения «красок» контейнеров верхнего уровня (или «краска» вообще) – MadProgrammer

ответ

0

Вам настройки URL в

URL imgUrl = getClass().getClassLoader().getResource("resources/"+name); 
ImageIcon icon = new ImageIcon(imgUrl); 

Но при вызове методы краски, вы вызываете логотип переменной

g.drawImage(logo, 30, 30, this); 

Проблема заключается в вашей установке значения URL, установите URL для вашего логотипа переменная как

URL url = new URL(/*Your resources herre*/, /*Your file name here*/); 
logo=getImage(url); 

После этого изображение дисплея используя метод краски.

+0

Это не проблема. Существует несколько способов делать то же самое. –

+0

Вы просто установите действительный URL-адрес для своей переменной. А затем передайте его переменной логотипа. Вы можете понять? –

+0

да я делаю!, Спасибо! –