Not all look-and-feels support custom background. If you're using WindowsLookAndFeel (or System under Windows platform), it doesn't support setting a custom background color (since the button background is painted by the native APIs). This also goes for some third-party LAFs.
Which LAF are you using?