Layout login swing

Oi!

galera estou fazendo um area para Login da seguinte forma

Tenha uma class login com 4 Labels um JTextField um JPasswordField um JPanel e um Jbutton

O meu JPanel tem uma cor de fundo branca e dentro dele eu coloco meus componentes

adcionar os componentes e dar as funcionalidades ao login eu sei fazer, o que eu nao sei é posicionar o elementos exatamente onde eu quero o login funciona mas os componentes GUI não ficam organizados do jeito que eu quero.

por exemplo:
a primeira label deve ser a label de Titulo dentro do panel, ex:“Sistema de Contas”.

a segunda label deve ficar ao lado esquerdo do panel contendo uma logo

a terceira e a quarta label devem ficar ao centro uma abaixo da outra

ao lado da terceira label que e a label “Usuario” deve ficar o JTextField

ao lado da quarta label que e a label “Senha” deve ficar o JPasswordField

e logo abaixo o botao “login”

as funcionalidades eu sei fazer o login esta funcionando valida o usuario corretamente só esta desorganizado.

nao quero fazer usando as ferramentas do NetBeans foi quero aprender como fazer esse posicionamento manualmente

Alguem pode me ajudar?

Usando os gerenciadores do Java:
http://download.oracle.com/javase/tutorial/uiswing/layout/using.html
http://download.oracle.com/javase/tutorial/uiswing/layout/visual.html

Usando um bom gerenciador de terceiros, o MigLayout:
http://www.miglayout.com/QuickStart.pdf

Use um setLayout(null) no JPanel, ai você pode colocar os componentes em qualquer lugar do painel, só é um pouco chato.

JPanel painel = new JPanel();

painel.setLayout(null);

painel.add(botao);

botao.setBounds(X, Y, LARGURA, ALTURA);

/* Coordenada de X em relação ao painel.

  • Coordenada de Y em relação ao painel.
  • Largura e altura do componente
    */

Cuidado. Essa é uma péssima idéia:

  1. As aplicações não ficam multiplataforma. Podem até quebrar entre diferentes versões do Windows;
  2. As janelas não ficam redimensionáveis. E, se você quiser assim, vai ter que escrever muito código;

Use gerenciadores de layout. Dão um pouquinho mais de trabalho para aprender, mas só de você ganhar de graça a funcionalidade do item 2, vale muito à pena.

Muito obrigado pela a dica do setBounds()

E eu tambem vou dar uma olhada nos gerenciadores de layout

valeu vcs me ajudaram muito!!!

:stuck_out_tongue:

Valeu ai ViniGodoy, não sabia que poderia acontecer isso :

“1. As aplicações não ficam multiplataforma. Podem até quebrar entre diferentes versões do Windows;”

Geralmente utilizo o setlayout(null) para janelas não redimensionáveis, mas vou utilizar mais os gerenciadores de layout devido todos serem objetos.

FLW.