repintar botão giratório com gradiente diferente

Como posso repintar um JButton com um gradiente diferente quando ele é clicado. Eu substituí o método paintComponent (Graphics) para fazer a pintura inicial. Ao clicar em Quero pintar novamente, mas não quero que o usuário faça isso no evento actionperformed, pois quero que este seja um componente independente.

Alguma idéia de como isso pode ser alcançado.

obrigado

questionAnswers(2)

yourAnswerToTheQuestion