Magazine Informatica

Applicare uno sfondo ad un JPanel - Java

Creato il 25 giugno 2012 da Ketek @CarloVentrella

Spesso nasce la necessità di applicare uno sfondo, che può essere una foto o un'immagine realizzata appositamente, ad un JPanel: per poter arrivare a tale risultato abbiamo la necessità di utilizzare una classe che estente la classe JPanel e che quindi richiameremo per creare il nostro pannello.

 
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
import java.awt.Dimension;
import java.awt.Graphics;
 
class JPanelWithBackgr extends JPanel {
                private Image immagine;
              public JPanelWithBackgr (String immagine) {
                this(new ImageIcon(immagine).getImage());
                }
 
              public JPanelWithBackgr (Image img) {
                  this.img = img;
                    Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
                  // le dimensioni del pannello corrispondono a quelle della immagine
                    setPreferredSize(size);
                    setMinimumSize(size);
                    setMaximumSize(size);
                    setSize(size);
                    setLayout(null);
                                 }
 
                     public void paintComponent(Graphics g) {
                                g.drawImage(img, 0, 0, null);
                      }
}
 

Per creare un JPanel con sfondo ci basta istanziare l'oggetto JPanelWithBackgr:

 
JPanelWithBackgr panel = new JPanelWithBackgr("C:\\immagine.png");
 


Ritornare alla prima pagina di Logo Paperblog