Je pense que tu ferais mieux de rajouter un attribut dans ta classe, et de réaliser un JButton#getBackground() AVANT de faire ton premier setBackground pour conserver la couleur initiale pour ensuite la réutiliser lorsque tu le désirs.
Niveau portabilité, vu que je ne sais pas si tu utilises un look & feel particulier, ou si tu as défini tout un thème graphique, il est possible que sur un autre ordinateur (autre OS ou autre JVM), l'interface ne soit pas la même par défaut, et que tu aies quelques problèmes.