?Figura inserida em um Container indiretamente?

Codigo 1

package potencia;
import java.awt.BorderLayout;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Janela3 extends JPanel {
	private JLabel jl;
	public Janela3(){
		setLayout(new BorderLayout());
		jl=new JLabel("einstein.jpg");
		add(jl,BorderLayout.CENTER);
	}
}

Codigo 2

package potencia;
import java.awt.BorderLayout;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Janela3 extends JPanel {
	private JLabel jl;
	public Janela3(){
		setLayout(new BorderLayout());
		jl=new JLabel(new ImageIcon("einstein.jpg"));
		add(jl,BorderLayout.CENTER);
	}
}

Teste Codigo

package potencia;
import javax.swing.JFrame;
public class TestJan3 {
	public static void main(String[] args){
	JFrame jf=new JFrame();
	Janela3 jan3=new Janela3();
	jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	jf.getContentPane().add(jan3);
	jf.setVisible(true);
	jf.pack();
	}
}

Usando o codigo1 ,aparece a frase “einstein.jpg” da jl no jf.
Usando o codigo2 ,não aparece a figura einstein.jpg no jf.
Como sou iniciante tenho curiosidade de saber o que esta acontecendo.
Mas tb queria saber como mostrar a figura ,que foi inserida no ContainerA, no ContainerB.

Nota:Estou usando o eclipse, e a figura esta no diretorio potencia junto com o codigo fonte.

Sem examinar muito , na primeira tentativa voce usou o metodo contrutor do JLabelque recebe uma String
por isso ele apresentou o nome da figura e nao a imagem :stuck_out_tongue:

Eu sei,coloquei a label com string para testar se ela estava aparecendo . O que eu não tô entendendo é porque não aparece quando eu uso uma imagem.

Acabei de lê em , http://www.guj.com.br/posts/list/19467.java ,
fiz a mesma coisa ,tirei a declaracao de pacote e compilei direto no shell, e funcionou, mostrou a figura.
Tem alguma configuração do Eclipse que precisa ser configurada ?
hehe, senao vai de shell mesmo :slight_smile:

Olha acho que vc pode fazer isso , aki funcionou…

public class Janela3 extends JPanel {
private JLabel jl;
public Janela3(){
setLayout(new BorderLayout());
jl=new JLabel(new ImageIcon(“potencia/einstein.jpg”));
add(jl,BorderLayout.CENTER);
}
}

eu coloquei a imagem dentro da pasta potencia , que eh a pasta do pacote e no NEW IMAGEICON eu coloquei o pacote/ a imagem , aki comigo funcionou usando eclipse.
Tive problema semelhante no netbeans que nem o camarada la , mas resolvi pela rad Matisse do netbeans.

Mas tente ai rapa!!! Tenho fé que funciona :stuck_out_tongue:

Coloquei assim “potencia\einstein.jpg”

Com muita fé funcionou :smiley:

valeu ,obrigado mesmo.