Ciao, sono riuscito ad inserire lo sfondo che volevo nel mio JPanel.
Adesso il problema è che non adatta l'immagine alla finestra che io imposto in netBeans nella schermata design.
Come faccio a dirgli di adattare l'immagine automaticamente a seconda della grandezza della finestra?
Questo è il codice del mio JPanel:
codice:
public class backgroundedPanel extends javax.swing.JPanel
{
protected Image img;
public backgroundedPanel(String localURL)
{
super();
try
{this.img = ImageIO.read(getClass().getResource(localURL));}
catch (IOException ex)
{System.out.print("Impossibile leggere l'immagine per creare il pane \n");}
}
@Override
protected void paintComponent(Graphics g) {
if (img == null) {
super.paintComponent(g);
} else {
int panelWidth = getWidth();
int panelHeight = getHeight();
int imageWidth = img.getWidth(null);
int imageHeight = img.getHeight(null);
// Repeats the draw of the image many times as necessary
// to fill the entire surface of the panel.
for (int y = 0; y < panelHeight; y += imageHeight) {
for (int x = 0; x < panelWidth; x += imageWidth) {
g.drawImage(img, x, y, null);
}
}
}
}
/* il metodo "setBounds" si occupa di posizionare e dimensionare un elemento grafico. Noi creiamo
* qui una versione "facilitata" di questo metodo che dimensiona AUTOMATICAMENTE il pane se-
* condo le dimensioni dell'immagine, pertanto in ingresso riceve solo due coordinate */
public void setBounds(int x, int y)
{
super.setBounds(x,y,img.getWidth(this),img.getHeight(this));
}
}