Add Imagem em um JPanel!

Bem pessoal, é o seguinte estou com um problema na hora de jogar a imagem para um JPanel… segue o código…

Ele simplesmente não exibi, tentei jogar em um JOptionPane e a imagem exibiu normalmente mais em um “JPanel.add(label)” não!

private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
    
    JFileChooser CaminhoFigura = new JFileChooser();  
    int opcao = CaminhoFigura.showOpenDialog(null);
    
        //se clicar em Abrir...
            if (opcao == JFileChooser.APPROVE_OPTION) {
                
                image2 = new ImageIcon(CaminhoFigura.getSelectedFile().toString());
                
                JLabel label = new JLabel(image2);
                jPanel3.add(label);                    
                
     } 
}

Um abraço a todos…
Obrigado!

tenta algo do tipo.

SEU_Frame.repaint();

isso depois do add.
abraço

Na verdade é um JPanel…

“.repaint();” tbm não funcionou, não exibi a imagem! :frowning:

tenta

seupanel.revalidate();

vou colocar uma solução que eu já usei, onde eu passo o frame e o nome da imagem que eu quero utilizar…

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import java.awt.Container;
import java.awt.BorderLayout;
/**
 *
 * @author */
public class ImageGui {

    public ImageGui()
    {
        
    }
    //o metodo recebe o frame e a nome da imagem:exemplo "imagem.jpeg"
    public void inserirImagem(JFrame frame, String image)
    {
        //abaixo fica o caminho da imagem e o nome do arquivo com a imagem recebida por parametro  
        String caminho= "C:/src/GUI"+image;
        //cria o JPanel para adicionar os labels         
        JPanel panel = new JPanel();  
                 
    //carrega a imagem passando o nome da mesma  
        ImageIcon img = new ImageIcon(caminho);  
          
        img.getImage();
        
        //pega a altura e largura  
        int altura = img.getIconHeight();  
        int largura = img.getIconWidth();  
              
        panel.setSize(largura, altura);
               
        //adiciona a imagem em um label  
        JLabel label = new JLabel(img);  
              
        //container onde serão adicionados todos componentes     
        Container container = frame.getContentPane();  
       
        //adiciona o panel no container  
        container.add(panel, BorderLayout.NORTH); 
           
        panel.add(label, BorderLayout.CENTER);
                
        frame.pack();
    }
}

Espero ter podido ajudar.

Qualquer coisa poste um exemplo mais completo, com um main que possamos rodar para lhe apontar o problema… :slight_smile:

http://www.guj.com.br/posts/list/15/49264.java#258635

Ve na primeira resposta da segunda página

É a classe JImagePanel que o ViniGodoy fez

Tem uma versão mais atualizada aqui:
http://www.guj.com.br/posts/list/56248.java#295271

Dorpho, ao postar código, utilize a tag code. Se ainda não sabe fazer isso, dá uma lida aqui:
http://www.guj.com.br/posts/list/50115.java

Aí seu código fica formatado como o do resto do pessoal! :wink:

Coloca um JLabel e adiciona um ícone nele, se você estiver usando algum framework de interface gráfica fica mais fácil, tipo o WindowBuilder.

Utilizei SwingX pra fazer isso e fico show, segue como fiz:

        // fundo da janela
        ImageIcon imgFundo = new ImageIcon(getClass().getResource("imagens/fundo.png"));
        jXImagePanel.setImage(imgFundo.getImage());
        jXImagePanel.setStyle(Style.TILED);