The best way to colorize your buttons is to use ImageIcons instead of text. You can use Gimp to develop them.
Make sure the background is transparent !
button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/myimage.png")));
This is the disabled button button.setDisabledIcon(...:

This button is on, not pressed:

This is the button with the button pressed:

Changing the background color after clicking is done using Swing. For this you need only 2 images.