ecco il mio codice:
codice:
public class backgroundedButton extends javax.swing.JButton
{
    private Image img;
    private Image img_PRESSED;
    private Image img_FOCUSED;

    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));

        super.setMargin(new Insets(0,0,0,0));

    }
dimmi dove sbaglio