Что делать, если нужно изменить не только цвет? Если это приложение, где все находится под вашим контролем, то имеет смысл использовать наследование - создайте базовые классы для всех необходимых компонентов (например, панелей, кнопок) и переопределите метод paintComponent, чтобы удовлетворить ваши потребности. Этот подход мог бы быть более модульным, если бы поведение метода paintComponent в базовых компонентах можно было настраивать во время создания экземпляра, предоставляя соответствующих «художников», которые вызываются из метода paintComponent.
Здесь является потенциально полезной ссылкой.