Ciao a tutti.
Utilizzo questo codice per ridimensionare automaticamente l'immagine nel JPanel a seconda della finestra che gli assegno.

codice:
protected void paintComponent(Graphics g) {
        if (img == null) {
            super.paintComponent(g);
        } else {
            int panelWidth = getWidth();
            int panelHeight = getHeight();
            int imageWidth = panelWidth;
            int imageHeight = panelHeight;

             g.drawImage(img,0,0,imageWidth,imageHeight,null);

                }
            }
Come posso applicare lo stesso sistema ad un bottone???
Che naturalmente contiene 3 immagini (normale,focused,pressed)

Questo è il codice del bottone che assume le tre immagini:
codice:
public backgroundedButton(String localURL)
    {
        //recupero le 3 immagini (abilitato, cliccato e focalizzato) dall'URL relativo passato
        try
        {
            this.img = ImageIO.read(getClass().getResource(localURL));
            this.img_PRESSED  = ImageIO.read(getClass().getResource(localURL.substring(0, localURL.length()-4)+"_PRESSED.jpg"));
            this.img_FOCUSED  = ImageIO.read(getClass().getResource(localURL.substring(0, localURL.length()-4)+"_FOCUSED.jpg"));
        }
        catch (IOException ex)
        {System.out.print("Impossibile leggere l'immagine per creare il bottone \n");}

        //elimino il contenuto grafico ed il contorno di default del pulsante
        this.setContentAreaFilled(false);
        this.setFocusPainted(false);

        //imposto l'immagine di base
        this.setIcon(new javax.swing.ImageIcon(img));

        //imposto l'immagine visualizzata quando il mouse clicca sul pulsante
        this.setPressedIcon(new javax.swing.ImageIcon(img_PRESSED));

        //imposto l'immagine visualizzata quando il mouse passa sopra il pulsante
        this.setRolloverEnabled(true);
        this.setRolloverIcon(new javax.swing.ImageIcon(img_FOCUSED));
    }