У вас есть paintComponent, вызываемый при перерисовке, который рисует кнопку. Нужно сделать так, чтобы этот метод знал что ему сейчас рисовать, то есть, знал где мышь. В слушатель мыши (им может быть и сама кнопка, как вы привели в примере, а может и другой объект) можно добавить значение bool isMouseEntered; в mouseEntered() написать isMouseEntered = true, а в mouseExited() наоборот false. Останется добавить примерно такой код в paintComponent:
if(isMouseEntered){
//рисуем круглую кнопку
}else{
//вызываем дефолтный рисовальщик или сами рисуем.
super.paintComponent(g);
}
И не забудьте добавить в конструкторе кнопки addMouseListener(this)