Con ese método se ve mejor, pero hay parte que sigue sin verse, el problema está que la imagen de fondo se superpone a este ¿Hay alguna forma de indicar que la imagen es el fondo?
Así se ve con el método repaint();
Así se veía antes del método repaint();
Como se puede ver, se ha mejorado la visibilidad del botón, pero este sigue apareciendo por debajo de la imagen hasta que pasas el ratón por encima.