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.

Archivo del blog

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:





















11 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. buena aportacion me salvaste de un proyecto gracias horas buscando y aqui en tu blog lo encontre la respuesta muchas gracias...

    ResponderEliminar
  4. me aparece una pantalla solamente con los íconos de minimizar, maximizar y cerrar.

    ResponderEliminar
  5. Que se supone lo que hay que poner dentro de los { ... } en initComponents()? Me está diciendo: Syntax error on token "...", delete this token

    No hay ningún ejemplo que me sirva para poder insertar una imagen en un JFrame en Eclipse y el tuyo es uno de ellos, seguiré buscando...

    ResponderEliminar
  6. Esto fue en el 2014 y ya en el 2018, y aun así muchas gracias me ha servido mucho!!!!!!!!

    ResponderEliminar

Con la tecnología de Blogger.