Então tanto o flowlayout quanto o gridlayout resolvem.
:thumbup:
R_chieck
Ola, se ver bem seu código voce está inserindo o jpanel no centro:
BorderLayout.CENTER
podes mudar a posição colocando o jpanel no norte e o botao no sul POR EXEMPLO
pois conforme o seu codigo o botao não tem posição especifica.
se for mudar de layout recomendo o NULL
jframe.setLayout(null);
este não tera nenhum destes controles
ou o absoluto tambem.
nestes voce apenas coloca os componentes em uma posição X, Y e com uma tamanho width e height
e ali vão estar e ficar.
denisspitfire
esse grid tah me irritando kkk na verdade nao gosto mto de GUI mas blz… vamos lá
al.barbosa
denisspitfire,
Queria acrescentar que o layout que está sendo aplicado no exemplo que você apresentou (classe Transferidor) não é o BorderLayout. O layout que está sendo aplicado é o FlowLayout, que é o layout default para os JPanels. Para usar o BorderLayout, você precisaria colocar o código abaixo:
Mas isso não iria resolver o problema, porque inserindo os botões com BorderLayout.CENTER eles ficariam todos sobrepostos no centro.
Eric_Yuzo
A forma mais fácil de colocar os componentes um em baixo do outro é com o BoxLayout. No link que postei acima tem até um exemplo de uso.
GridLayout pode ser configurado com apenas uma coluna, o que vai fazer os componentes ficarem um em baixo do outro, mas eles vão se redimensionar para ocupar todo o grid, o que pode deixar os botões com um tamanho não desejado.
FlowLayout vai colocando os componentes um do lado do outro mesmo. Ele só vai quebrar a linha quando não houver mais espaço horizontal no painel.
Ainda daria pra fazer usando GriBagLayout, mas para este caso em específico, acho que não compensa o esforço. Eu iria de BoxLayout.
InicianteJavaHenriqu
Só não use setLayout(null); pois pode parecer fácil inicialmente posicionar os componentes em x e y, mas depois você não consegue manter este código.