Imagen en un JPanel
Hola a todos el dia de hoy voy a crear un jpanel al cual lo podemos personalizar con una imagen, y luego sobre este panel tu puedes agregar los componentes swing que desees, para esto vamos a sobreescribir el metodo paintComponent, en donde se define como se va a presentar la imagen, cabe señalar que la imagen puede ser de tipo Image o Icon

import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JPanel; /** * * @author Edisoncor */ public class JEImagePanel extends JPanel{ private Image image=null; private Icon icon; /** Creates a new instance of JEImagePanel */ public JEImagePanel() { } @Override protected void paintComponent(Graphics g) { Graphics2D g2 =(Graphics2D) g; if(getImage()!=null) g2.drawImage(getImage(), 0, 0, getWidth(), getHeight(), null); } public Image getImage() { return image; } public void setImage(Image image) { this.image = image; } public Icon getIcon() { return icon; } public void setIcon(Icon icon){ this.icon=icon; setImage(((ImageIcon)icon).getImage()); repaint(); } }









![[BlogBookmark]](http://edisoncor.mycsistemas.com/wp-content/plugins/bookmarkify/blogbookmark.png)
![[Bloglines]](http://edisoncor.mycsistemas.com/wp-content/plugins/bookmarkify/bloglines.png)
![[del.icio.us]](http://edisoncor.mycsistemas.com/wp-content/plugins/bookmarkify/delicious.png)
![[Digg]](http://edisoncor.mycsistemas.com/wp-content/plugins/bookmarkify/digg.png)
![[diigo]](http://edisoncor.mycsistemas.com/wp-content/plugins/bookmarkify/diigo.png)
![[Facebook]](http://edisoncor.mycsistemas.com/wp-content/plugins/bookmarkify/facebook.png)
![[Furl]](http://edisoncor.mycsistemas.com/wp-content/plugins/bookmarkify/furl.png)
![[Google]](http://edisoncor.mycsistemas.com/wp-content/plugins/bookmarkify/google.png)
![[Kaboodle]](http://edisoncor.mycsistemas.com/wp-content/plugins/bookmarkify/kaboodle.png)
![[linkaGoGo]](http://edisoncor.mycsistemas.com/wp-content/plugins/bookmarkify/linkagogo.png)
![[MySpace]](http://edisoncor.mycsistemas.com/wp-content/plugins/bookmarkify/myspace.png)
![[MyWeb]](http://edisoncor.mycsistemas.com/wp-content/plugins/bookmarkify/myweb.png)
![[Rojo]](http://edisoncor.mycsistemas.com/wp-content/plugins/bookmarkify/rojo.png)
![[Spurl]](http://edisoncor.mycsistemas.com/wp-content/plugins/bookmarkify/spurl.png)
![[Technorati]](http://edisoncor.mycsistemas.com/wp-content/plugins/bookmarkify/technorati.png)
![[ThisNext]](http://edisoncor.mycsistemas.com/wp-content/plugins/bookmarkify/thisnext.png)
![[Twitter]](http://edisoncor.mycsistemas.com/wp-content/plugins/bookmarkify/twitter.png)
![[Windows Live]](http://edisoncor.mycsistemas.com/wp-content/plugins/bookmarkify/windowslive.png)
![[Yahoo!]](http://edisoncor.mycsistemas.com/wp-content/plugins/bookmarkify/yahoo.png)
![[Email]](http://edisoncor.mycsistemas.com/wp-content/plugins/bookmarkify/email.png)
20. Junio 2008 at 21:56 :
muchas gracias este programa me funciono aunque no fuera para mi el codigo
4. Diciembre 2008 at 9:47 :
hola
soy aprendiz en java y quiero llegar a programar java avanzado
me ha gustado los ejemplos que pones aqui
solo que como hago para que funcionen
me pide un metodo main ???
como hago -> disculpame pero soy un poco nuevo
4. Diciembre 2008 at 11:43 :
Hola Oscar puedes agregar elk siguiente metodo
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
JFrame frame =new JFrame();
JEImagePanel panel = new JEImagePanel();
//aqui puedes establecer la imagen a utilizar
panel.setIcon(new Icon());
frame.setContentPane(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
});
}
O si utilizas Netbeans, crea un nuevo JFrame y lo puedes arrastrar desde el navegador de proyectos a la clase y para poder poner la imagen vas al metodo Icon el la ventana de propiedades