Problema ao carregar imagem com JImagePanel?

6 respostas
fernandopaiva

Salve galera…

To tentando colocar uma imagem aqui na minha tela principal JDialog usando JImagePanel…
Criei o JDialog usando NetBeans, importei minha imagem para o package “imagens” do meu projeto, mas não consigo exibi-la e ainda tenho erros ao compilar.

public void inicializacao() throws URISyntaxException, IOException{
        //aqui onde tento carrega-la usando JImagePanel
        JImagePanel painelPrincipal = new JImagePanel(new File(getClass().getResource("/src/pacotes/logo_painelCont.png").toURI()));     
        painelPrincipal.setFillType(JImagePanel.FillType.CENTER);
        this.add(painelPrincipal);       
    }

Aqui o erro que tenho de retorno…

NullPointerException, mas a imagem esta no package, não sei o pq deste erro.

Alguma dica ???

obrigado.

6 Respostas

mateuscs

Boa tarde,

Fernando,

Faça o seguinte, acesse direito,
Copie ela em seu Source Folder,
Acesse da seguinte forma:

URL url = this.getClass().getResource("/IMAGEM.PNG");
		Image img = Toolkit.getDefaultToolkit().getImage(url);
JImagePanel painelPrincipal = new JImagePanel(img);

Acho que funcionará assim

Caso não funcione retire o new File

JImagePanel painelPrincipal = new JImagePanel(getClass().getResource("/src/pacotes/logo_painelCont.png").toURI()));
fernandopaiva

Opa Mateus, obrigado pela atenção

Testei suas duas dicas, inclusive a segunda eu ja havia testado, e ainda não consegui fazer funcionar.

Alguma dica ??

obrigado

mateuscs

Tem como postar o codigo todo pra dar uma olhada?

mateuscs

Exemplo de código postado por suspiro10, tópico http://www.guj.com.br/java/34500-como-deixar-uma-imagem-de-background-em-um-jpanel

package testes;  
  
  import java.awt.*;    
  import java.awt.image.*;    
  import javax.swing.*;    
  import java.io.*;    
  import javax.imageio.ImageIO;    
       
       
       
   public class imageTeste extends JComponent {    
      JFrame frame;    
      JPanel panel;    
          
     imageTeste() {    
      frame = new JFrame("Game");    
      panel = new JPanel();       
           
      panel.setLayout(null);    
      panel.setBackground(Color.WHITE);    
       // nao funcionou...  
          panel.add(this);    
          this.setBounds(50, 50, 100, 100);     
          
      frame.getContentPane().add(panel);    
      frame.setVisible(true);    
      frame.setSize(800,600);    
      frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);    
        
          
      }    
      public void paintComponent(Graphics g) {      
       try {    
        Graphics2D g2 = (Graphics2D) g;      
        InputStream imgStream = getClass().getResourceAsStream("eu.jpg");      
         BufferedImage image = ImageIO.read(imgStream);       
           g2.drawImage(image, 0,0, panel);   
            System.out.println("Mostrando imagem");     
           }      
       catch(Exception e) {    
          System.out.println("Imagem não localizada");    
      }    
    }    
      
      public static void main(String[] args) {    
         new imageTeste();    
         }    
     }
fernandopaiva

Opa Mateus, consegui resolver…

fiz assim:

public void inicializacao(){

//imagem de fundo
        InputStream imgStream = getClass().getResourceAsStream("/imagens/logo_painelCont.png");        
        BufferedImage image = ImageIO.read(imgStream);  
        JImagePanel painelPrincipal = new JImagePanel(image);
        painelPrincipal.setSize(400, 400);
        painelPrincipal.setFillType(JImagePanel.FillType.CENTER);        
        this.getContentPane().add(painelPrincipal);
}

Agora preciso colocar ela no centro do JDialog, outra batalha iniciada…kkkkkkkkk !!!

obrigado

mateuscs

Parabens,

Entendeu a lógica que errou?

Qualquer dúvida poste ae pra gente ve.

Criado 15 de julho de 2011
Ultima resposta 15 de jul. de 2011
Respostas 6
Participantes 2