How to change shape of JButton

You can extend Jbutton and override paint() (paint, not paintComponent() and don't call super.paint() either). Then you can do whatever drawing you want. Might also need to look at the source code of JButton to see how you can override the mouse handling for clicking.