Una forma sencilla y rápida de aprender JAVA, observando y deduciendo cómo se comporta el lenguaje a través de ejemplos prácticos.

martes, 1 de abril de 2014

Imágenes. Mostrar imagen dentro un jPanel.

Se crea un nuevo proyecto en Netbeans y en vista de diseño se agrega un jButton y un jPanel.
Una vez hecho esto se crea una nueva carpeta llamada "Images". Dentro esta carpeta le agregamos una imagen en formato .PNG (se inserta directamente arrastrando la imagen a la carpeta).





















Codigo 1. (Principal.java):

package Imagen1;

public class Principal extends javax.swing.JFrame {
    
    public Principal() {
        initComponents();
        this.setLocationRelativeTo(null); // Centrar pantalla 
    }
                            
    private void initComponents() { ... } // Codigo generado automaticamente.                        

    private void jButtonIniciarActionPerformed(java.awt.event.ActionEvent evt) {
        Imagen im = new Imagen(jPanel1);
        jPanel1.add(im).repaint();
    }                                              

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Principal().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton jButtonIniciar;
    private javax.swing.JPanel jPanel1;
    // End of variables declaration                   

}


Codigo 2. (Imagen.java):

package Imagen1;

import java.awt.Graphics;
import javax.swing.ImageIcon;
import javax.swing.JPanel;

public class Imagen extends javax.swing.JPanel {
    int x, y;

    public Imagen(JPanel jPanel1) {
        this.x = jPanel1.getWidth();
        this.y = jPanel1.getHeight();
        this.setSize(x, y);
    }

    @Override
    public void paint(Graphics g) {
        ImageIcon Img = new ImageIcon(getClass().getResource("/Images/imagen1.png"));
        g.drawImage(Img.getImage(), 0, 0, x, y, null);
    }    

}


Resultado:





















7 comentarios:

  1. No sirve, me muestra una pantalla chiquitita sin imagen

    ResponderEliminar
  2. siempre tenia problema con el repaint pero con este metodo funciona exclente, gracias

    ResponderEliminar
  3. Graaaaciaaaas!!! Estuve toda una semana peleándome con mi programa por esto y gracias a tu post lo solucioné! Gracias otra vez!

    ResponderEliminar
  4. buena aportacion me salvaste de un proyecto gracias horas buscando y aqui en tu blog lo encontre la respuesta muchas gracias...

    ResponderEliminar

Con la tecnología de Blogger.