Per AbstractButton e sottoclassi, ci sono:
setDisabledIcon(Icon disabledIcon)
setDisabledSelectedIcon(Icon disabledSelectedIcon)
setIcon(Icon defaultIcon)
setPressedIcon(Icon pressedIcon)
setRolloverIcon(Icon rolloverIcon)
setRolloverSelectedIcon(Icon rolloverSelectedIcon)
setSelectedIcon(Icon selectedIcon)
Scegli quindi tu quali impostare. Se alcuni non vengono impostati, ci sono comunque delle logiche di default, del tipo: se non si imposta il disabledIcon, Swing prende il defaultIcon e lo fa passare attraverso un GrayFilter e usa il risultato per il disabledIcon.