Originariamente inviato da Kaamos
d.setOpaque(false); // Trasparenza sfondo
setOpaque non ti servirebbe .... non ha a che fare con l'Icon rispetto al pulsante (ma con il pulsante rispetto a quello su cui sta "sopra").

Originariamente inviato da Kaamos
d.setEnabled(false); // Disabilita pulsante
La questione è qui. Se è disabilitato, per default prende la icona "normale" e ne genera una immagine "disabilitata" tramite un apposito "filtraggio".

Usa setDisabledIcon().