Imagen de fondo en JFrame y JPanel

Para establecer una imagen de fondo a un JFrame o JPanel debemos sobreescribir el metodo paint()y hacer que este dibuje la imagen de fondo por medio de la clase Graphics:

Como ponerle una imagen de fondo a un JPanel :

  1. import java.awt.Dimension;
  2. import java.awt.Graphics;
  3. import javax.swing.ImageIcon;
  4. import javax.swing.JPanel;
  5. /**
  6.  *
  7.  * @author www.javafrikitutorials.com
  8.  */
  9. public class JPanelBackground extends JPanel {
  10.     //cargamos nuestra imagen de fondo en un ImageIcon
  11.     private ImageIcon imageIcon = new ImageIcon(getClass().getResource(“background.jpg”));
  12.     public JPanelBackground() {
  13.         //esta linea hace que el JPanel tenga el mismo tamaño que la imagen
  14.         setPreferredSize(new Dimension(imageIcon.getIconWidth(), imageIcon.getIconHeight()));
  15.         //es necesarion setear el JPanel a Opaque false, de lo contrario la imagen no sera visible
  16.         setOpaque(false);
  17.     }
  18.     //el truco para establecer la imagen de fondo es sobreescribir el metodo paint()
  19.     @Override
  20.     public void paint(Graphics g) {
  21.         g.drawImage(imageIcon.getImage(), 0, 0, getWidth(), getHeight(), null);
  22.         super.paint(g);
  23.     }
  24. }

Como ponerle una imagen de fondo a un JFrame :

  1. import java.awt.Graphics;
  2. import javax.swing.ImageIcon;
  3. import javax.swing.JFrame;
  4. /**
  5.  *
  6.  * @author www.javafrikitutorials.com
  7.  */
  8. public class JFrameBackground extends JFrame {
  9.     private ImageIcon imageIcon = new ImageIcon(getClass().getResource(“background.jpg”));
  10.     public JFrameBackground() {
  11.         super(“JFrame con imagen de fondo”);
  12.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  13.         setSize(imageIcon.getIconWidth(), imageIcon.getIconHeight());
  14.     }
  15.     @Override
  16.     public void paint(Graphics g) {
  17.         if (imageIcon != null) {
  18.             g.drawImage(imageIcon.getImage(), 0, 0, getWidth(), getHeight(), null);
  19.         }
  20.     }
  21.     public static void main(String[] args) {
  22.         new JFrameBackground().setVisible(true);
  23.     }
  24. }

Un pensamiento sobre “Imagen de fondo en JFrame y JPanel”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>