Isso funcionou no container de uma janela que fiz…acredito que funcione também no JPanel.
//// Cria o Desktop Pane.//io_desktop=newJDesktopPane(){//// Define a imagem.//Imageimage=(newImageIcon(RLLIcon.class.getResource("RLLAgência.jpg"))).getImage();publicvoidpaintComponent(Graphicsgraphic){//// Define a posição da imagem na janela.//graphic.drawImage(image,-120,-100,this);}};//// Define layout da janela.//io_desktop.setLayout(null);io_desktop.setSize(1500000,1500000);io_desktop.setBackground(Color.LIGHT_GRAY);
Tenta aí…
lina
Oi,
O código acima funciona, porém você pode utilizar isso:
jLabelLogo = new JLabel(new ImageIcon(<suaclasse>.class.getResource("minhaImg.jpg")));
jLabelLogo.setBounds(new java.awt.Rectangle(11,35,162,121));
jLabelLogo.setText("JLabel");
jPanelLogo = new JPanel();
jPanelLogo.setLayout(new BorderLayout());
jPanelLogo.setBounds(new java.awt.Rectangle(1,-1,181,219));
jPanelLogo.add(jLabelLogo, BorderLayout.CENTER);
O problema foi o argumento passado ao executar o new ImageIcon.
Tchauzin!
malves_info
Deu error!!!
IWAV0052E Invocation Target Exception creating project.gui.About
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.eclipse.ve.internal.java.vce.launcher.remotevm.JFCLauncher.launch(JFCLauncher.java:56)
at org.eclipse.ve.internal.java.vce.launcher.remotevm.JavaBeansLauncher.main(JavaBeansLauncher.java:77)
Caused by: java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at zord.gui.About.getJPanelLogo(About.java:56)
at zord.gui.About.getJContentPane(About.java:44)
at zord.gui.About.initialize(About.java:31)
at zord.gui.About.<init>(About.java:21)
... 6 more
Alteração feita:
...
jLabelLogo = new JLabel(new ImageIcon(About.class.getResource("img/minhaIMG.jpg")));
...
criador
Só passa o nome da imagem
O About.class.getResource pega o package onde está sua imagem.
Se estiver no mesmo pacote da sua classe é só fazer isso que mostrei ai em cima…
Testa assim primeiro.
Se der erro poste aqui…
Abraço!
lina
Oi,
a String utilizada: “img/minhaIMG.jpg” não é mais necessária. retire o img/ da frente, ficando: “minhaIMG.jpg”
Tchauzin!
lina
Olhe a exceção:
Caused by: java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at zord.gui.About.getJPanelLogo(About.java:56)
at zord.gui.About.getJContentPane(About.java:44)
at zord.gui.About.initialize(About.java:31)
at zord.gui.About.<init>(About.java:21)
... 6 more
Provavelmente, ele não conseguiu achar a imagem! de um Refresh no seu pacote!
Tchauzin!
malves_info
Mesmo erro… … Tem certeza que não precisa colocar o diretório da imagem: “img/” ???
criador
Não precisa não…
Mas tens que colocar a imagem no mesmo pacote desta classe.
O getResource pega o caminho do pacote onde está sua classe!
lina
Oi,
é o seguinte,
no meu teste aqui, eu criei uma classe chamada Teste e ela estava dentro do pacote estudos.
A minha imagem estava dentro deste pacote. então só utilizei a linha como te informei acima.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at zord.gui.About.getJPanelLogo(About.java:68)
at zord.gui.About.getJContentPane(About.java:46)
at zord.gui.About.initialize(About.java:33)
at zord.gui.About.<init>(About.java:23)
at zord.gui.MainTray$3.actionPerformed(MainTray.java:92)
at java.awt.MenuItem.processActionEvent(Unknown Source)
at java.awt.MenuItem.processEvent(Unknown Source)
at java.awt.MenuComponent.dispatchEventImpl(Unknown Source)
at java.awt.MenuComponent.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Leandro_Vecchi
ixi, para fazer isso eu usei uma ferramenta, de criação de interface, chamada Window Builder… com ela é facil colcoar icone, imagens , etc. tenta tirar aquele nome la.
malves_info
Se eu tirar o nome não adianta neh? sem objeto == sem referência == sem método
lina
Bom,
é quase de certeza que falta dar um refresh no pacote onde fica a imagem!
malves_info
Linda lina se eu der mais Refresh no meu project vou quebrar meu F5 kkkkkkkk… brincadeira isso já fiz. MASSS resolvi meu POBREma… Segue a solução:
importjava.awt.Dimension;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.Toolkit;importjavax.swing.JPanel;publicclassPanelImageextendsJPanel{privatestaticfinallongserialVersionUID=1L;Imageimagem;Stringcentralizar=null;publicPanelImage(StringURL,Stringcentralizar){imagem=Toolkit.getDefaultToolkit().getImage(getClass().getResource(URL));if(centralizar.equals("s")){this.centralizar=centralizar;}elseif(centralizar.equals("n")){this.centralizar=centralizar;}else{this.centralizar="n";}}@OverridepublicvoidpaintComponent(Graphicsg){super.paintComponent(g);if(imagem!=null){Dimensiondimension=this.getSize();intx=(int)(dimension.getWidth()-imagem.getWidth(this))/2;inty=(int)(dimension.getHeight()-imagem.getHeight(this))/2;if(this.centralizar.equals("n")){g.drawImage(imagem,x,y,imagem.getWidth(this),imagem.getHeight(this),this);}elseif(this.centralizar.equals("s")){g.drawImage(imagem,0,0,this.getWidth(),this.getHeight(),this);}}else{g.drawString("Imagem não encontrada para fundo do sistema.",50,50);}}}