JImagePanel - Funciona uma única vez. PQ? [Resolvido]

a blza
eu fiz isso e nao ta dando certo mas e pq eu nao add o jpanel ao frame vlw vo tenta aki qualquer coisa posto aki

.

Copiei esse código para dentro da minha classe TelaMenu e gostaria de saber como faço para utiliza-lo.
O que eu coloco no meu contrutor para que por exemplo o meu JPanel pnUser tenha a imagem fundo.jpg como background?

como fazer para chamar essa classe no meu projeto ?
ja adicionei essa classe ao pacote

Igual vc adicionaria um painel qualquer.

eu to com probelma c/ o setImage(String) dessa classe,
eu coloco o caminho da imagem, mas ele da erro dizendo q ele não encontra o caminho dela…
eu usei o msm caminho em um icone de um botão e deu certinho…
eu coloquei dentro de um try normalz…

Pode colocar aqui o código que deu certo e o que deu errado?

vai aew parte do código…[code] jipImagem = new JImagePanel();

[code]jl=new JLabel();

try{
jipImagem.setImage("/jogo/imagens/unidade2.gif");//esse não encontrou o arquivo
}catch(IOException i){
JOptionPane.showMessageDialog(null, i.getMessage());
}

  jl.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jogo/imagens/unidade2.gif")));//esse deu certu

[/code]

devo te entendido errado a classe, naum se pode passa como parametro o caminho da imagem??

getResource é uma coisa. Um file é outra.

O imagepanel pede o caminho de um File, não de um Resource.

Adicione os seguintes métodos no seu ImagePanel:

[code]public JImagePanel(InputStream imgSrc) throws IOException
{
this(ImageIO.read(imgSrc));
}

public void setImage(InputStream imgSrc) throws IOException
{
setImage(ImageIO.read(imgSrc));
}
[/code]

E então, chame-o assim:

jipImagem.setImage(getClass().getResourceAsStream("/jogo/imagens/unidade2.gif"));

Valew msm, vo testa hj o código.

desculpa incomoda de novo :oops:
é q eu procurei e não achei solução…=/
mas é q eu testei o código e qnd eu fui implementa ele me retorna um erro dizendo q :
non-static method getClass() cannot be referenced from a static context

[quote=jedsc91]desculpa incomoda de novo :oops:
é q eu procurei e não achei solução…=/
mas é q eu testei o código e qnd eu fui implementa ele me retorna um erro dizendo q :
non-static method getClass() cannot be referenced from a static context
[/quote]

usa assim:

[code]BufferedImage bi = ImageIO.read(this.getClass().getResource("/icon/LOGO.png"));

		seuImagePanel = new JImagePanel(bi);
		
		this.getContentPane().add(seuImagePanel);[/code]

lembrando que sua imagem tem que estar dentro do src

vlw msm everton, vo testa ainda hj esse código, brigadao msm pela ajuda :smiley:

No JInternelFrame é só você add um JLabel no BorderLayout.CENTER e inserir uma imagem no JLabel.

O único porém é que você terá que implementar um método para redimensionar a tela conforme o tamanho do Form.

Pessoal, estou com programa q adiciona a um jPanel vários jLabel com uma imagem em cada jLabel, agora estou precisando modificar o tamanho da imagem q eu inseri em cada jLabel. Então o ViniGodoy me recomendou a classe JImagePanel em lugar dos JLabel, só q com o codigo q eu implementei ñ esta adicionando nada ao jPanel principal. Ta ai o codigo

JImagePanel novo = null;
                            try {
                                novo = new JImagePanel(aux);  // aux é uma String contendo o caminho
                                novo.setFillType(JImagePanel.FillType.RESIZE);
                                novo.setSize(100, 100);
                                novo.setImage(aux);
                            } 

                            catch (IOException ex) {
                                Logger.getLogger(Interface_TrView.class.getName()).log(Level.SEVERE, null, ex);
                            }
                                                      
                             jPanel1.add(novo);
                             jPanel1.repaint();
                             jPanel1.validate();
                             JOptionPane.showMessageDialog(null, novo);
                            // aqui nesse JOptionPane mostra a imagem q eu quero, só q no painel principal ñ mostra nada,
                            // e ainda por cima no metodo jPanel1.getComponentCount() que é o metodo q retorna 
                            //a quantidade de componentres do painel ta retornando zero

Uma duvida Vini…

gostaria de saber se com a sua class da para fazer o seguinte…

to criando uma tela para cadastro de cliente e nele gostaria colocar um Jpanel para receber a foto do cliente cadastrado…
ter a opção para Upa a foto do pc para uma pasta ou banco do sistema…

att…

É uma classe do Swing, para aplicações desktop. O que vc quer dizer com “upar”?

to usando para desktop msm, UPar q to falando e carregar a foto de qualquer pasta no pc para uma pasta ou banco no sistema…

Ja tenho aki minha JPanel e Jbutton para abrir uma JDialog… que va abrir o local de busca da Imagem.

O JImagePanel só exibe imagens.

O resto é você que tem que fazer com o Java.

vc poderia me dar uma dica de como fazer para ele fazer da forma dessa forma…

tem o campo la para receber a imagem carregada apartir do botao q criei para abrir a janela de busca da imagem…