Inserindo Imagem

Salve Salve galera!!! estou com um probleminha em inserir imagem na JLabel + JPanel. Segue o fonte:

jLabelLogo = new JLabel(new ImageIcon("img/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);

Faço estes procedimentos mas a imagem não aparece :frowning: … o que pode ser???

Agradeço desde já a atenção!!!

[]'s

Isso funcionou no container de uma janela que fiz…acredito que funcione também no JPanel.

//
// Cria o Desktop Pane.
//
io_desktop		=	new JDesktopPane()
{
	//
	// Define a imagem.
	//
	Image
	image		= 	(
					new ImageIcon(RLLIcon.class.getResource("RLLAgência.jpg"))
				).getImage();
				
	public
	void			paintComponent
				(
					Graphics		graphic
				)
	{
		//
		// 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í…

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!

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")));
...

:frowning:

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!

Oi,

a String utilizada: “img/minhaIMG.jpg” não é mais necessária. retire o img/ da frente, ficando: “minhaIMG.jpg”

Tchauzin!

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!

Mesmo erro… :frowning: … Tem certeza que não precisa colocar o diretório da imagem: “img/” ???

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!

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.

Onde ta esse diretorio?

é dentro da pasta source do seu projeto?

se o diretorio for /img/

tenta isso pra ver se ta pegando o arquivo

File file = new File(About.class.getClassLoader().getResource("img/minhaIMG.jpg").toURI());

boolean isNull = file == null;
if(isNull)
System.out.println("Arquivo nulo");
else
System.out.println(file.exists());

Quando eu quero colocar uma image em um label eu faço assim:

dataHoraLabel = new JLabel(); dataHoraLabel.setIcon(SwingResourceManager.getIcon(Principal.class, "/Img/icone2.gif")); dataHoraLabel.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); dataHoraLabel.setBounds(0, 2, 788, 14); panel_1.add(dataHoraLabel); dataHoraLabel.setVisible(true);

Eu coloco o caminho completo, nesse caso a imagem está dentro de uma pasta no projeto.

tenta isso e posta aqui se der certo :smiley:

O diretório da “img” esta dentro do mesmo pacote da classe About que é “gui”.
Leandro Vecchi SwingResourceManager não consigo encontrar aqui.

Tentou?

File file = new File(About.class.getResource("img/minhaIMG.jpg").toURI());

boolean isNull = file == null;
if(isNull)
System.out.println("Arquivo nulo");
else
System.out.println(file.exists());

Tentei e da o seguinte erro:

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)

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.

Se eu tirar o nome não adianta neh? sem objeto == sem referência == sem método :wink:

Bom,

é quase de certeza que falta dar um refresh no pacote onde fica a imagem!

:cry:

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:

//Declarei
...
private final Image imgLogo = Toolkit.getDefaultToolkit().getImage(About.class.getResource("img/minhaIMG.jpg"));

//Informei!
jLabelLogo = new JLabel(new ImageIcon(imgLogo));
....

E Resolveuu!!! Obrigado a todosss pela ajuda!!! :wink: Lina esta de parabéns vi uns posts seus aqui no forum … e saca bem de java…

[]'s