Arredondar Cantos de um JButton

Boa tarde amigos,

Existe a possibilidade de arredondar os Cantos de um JButton ? Tentei procurar mas não achei ninguém que ensinasse realmente como o faço.
Estou fazendo uma calculadora com SWING e queria que os botões ficassem “menos” quadrados.

Segue a classe do botão que estou usando:

public class Botao extends JButton {
	
	public Botao(String texto, Color cor) {
		setText(texto);
		setOpaque(true);
		setBackground(cor);
		setFont(new Font("Segoe", Font.PLAIN, 25));
		setForeground(Color.WHITE);
		setBorder(BorderFactory.createLineBorder(Color.BLACK));
		
	}

}

Não é algo trivial de se fazer, o mais fácil é criar um botão sem bordar e usar imagens de fundo pra ele.

O mais decente é escrever sua própria classe de borda arredondada e fazer a computação gráfica da borda você mesmo.

Mas como eu disse, não é trivial de fazer.

O Look’n Feel do FlatLaf traz uns componentes mais bonitos:

https://www.formdev.com/flatlaf/