Como parte del proceso de creación de una aplicaciones, hoy les comparto una técnica para insertar una imagen dentro de un jPanel en Java. Lo primero que haré será crear un nuevo proyecto en Java. Conservaré la clase principal (Java Class) y agregaré un jFrame al que llamaré Window. Desde la clase principal llamaré el Frame a la ejecución.
Ahora en el Frame agregaremos un Panel y un botón. Cuando le demos clic al botón se agregará una imagen al panel.
Creamos un paquete dentro del proyecto y arrastramos la imagen que queremos colocar dentro del panel en el paquete. Se puede arrastrar desde cualquier carpeta fuera de Netbeans donde la tengamos guardada.
Ahora vamos a la programación. Dentro del código Window, creamos una nueva clase llamada Imagen en la cual colocaremos el siguiente código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
public class Imagen extends javax.swing.JPanel { public Imagen() { this.setSize(300, 400); //se selecciona el tamaño del panel } //Se crea un método cuyo parámetro debe ser un objeto Graphics public void paint(Graphics grafico) { Dimension height = getSize(); //Se selecciona la imagen que tenemos en el paquete de la //ruta del programa ImageIcon Img = new ImageIcon(getClass().getResource("/Images/Diagrama.png")); //se dibuja la imagen que tenemos en el paquete Images //dentro de un panel grafico.drawImage(Img.getImage(), 0, 0, height.width, height.height, null); setOpaque(false); super.paintComponent(grafico); } } |
Con esta clase tenemos lista la mayor parte de la programación. Ahora vamos al botón en el que haremos clic para agregar la imagen al panel y colocamos lo siguiente:
1 2 3 |
Imagen Imagen = new Imagen(); jPanel1.add(Imagen); jPanel1.repaint(); |
Con esto podemos ejecutar nuestro programa y al dar clic en el botón que colocamos, la imagen que agregamos aparecerá en el panel.
Eso es todo por ahora. Espero sus comentarios. Saludos.
Hola, muy bueno. Pero crees que me puedas ayudar a saber como poner una imagen en un JPanel cuando selecciona una opción de un ComboBox, por favor
Da error: Cannot invoke «java.net.URL.toExternalForm()» because «location» is null
A pesar de que ingrese la imagen a un package propio y nada.
ImageIcon Img = new ImageIcon(getClass().getResource(«/recursos/teacher.png»));
HOLA QUISIERA SABER COMO AGG LA IMAGEN SIN EL BOTON, OSEA QUE APAREZCA DIRECTO EN LA VENTANA… O PANEL..PORFA SII
Agregue la función del botón en el constructor de la clase
Justo lo que necesitaba, muchas gracias por compartir.
Hola, después de mirar muchos códigos, al final con el que me he enterado y me ha salido bien la aplicación es gracias a ti. Muchas gracias
Disculpa sabes donde puedo aprender eso, o cual seria el tema, no entiendo el uso del getClass().getResource en un ImageIcon, algún libro que lo explique o cualquier información, Gracias:D
Son cosas de Java. Se aprenden sobre la marcha y con la experiencia
Hola, me sirvió de mucho tu aportación, pero no se como poner varios botones con una imagen cada uno y que aparezcan en el mismo panel conforme se presiona cada botón, espero su ayuda. Gracias
y como adaptar la imagen al tamaño del panel
Necesitas usar el método setBounds.
jpanel.setBounds(posx, posy, ancho_imagen, alto_imagen).
Lo colocas en el botón para que cuando das clic, el panel y la imagen estén al mismo tamaño