Você está usando layouts e eles tem precedência sobre o formato dos botões,
isto quer dizer que o layout usa o formato da janela para colocar os botões
no formato que melhor permitir a distribuição dentro dele.
Se não me engano você pode forçar o tamanho do botão com setPreferredSize
ou algo assim. Para obrigar o botão a ter um tamanho determinado.
Existe um layout chamado Absolute que permite que se define posição e tamanho
absoluto de cada componente, mas a programação não considera o uso desse
layout como bom recurso pois se o programa for rodado em
configuração de video diferente, a tela poderá ter botõe fora dela.
Se quiser alguma ajuda poste o código da sua janela e tentamos te ajudar a
modificar algumas coisas para vc testar.
Quanto a criar botões de outras formas, existem bibliotecas para isso, ou você
pode criar seu próprio botão extendendo a classe que vc usa e produzindo
seu próprio botão, mas não é coisa simples. Mas considere que quando você
cria um aplicativo para ser usado, ele se torna mais prático para usuarios
se ele tiver elementos que os usuários reconheçam e já estejam acostumados.
Um botão redondo é até bem visto para um dial mas muito incomum numa tela
de cadastro.