Por que os componentes não estão alinhados e com o tamanho "setado"

Bom pessoal gostaria de alinhar os componentes de minha tela,tipo os JLabels alinhados ( “Os 2 pontos do descrição alinhado com os dois pontos do código”, outra coisa que gostaria de fazer seria deixar o tamanho dos componentes ja setados… porém não estou conseguindo… alguem poderia me ajudar…

Segue abaixo o código

[code]package Tipo;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class GUI_CadastroTipo1 extends JDialog {

private static final long serialVersionUID = 1L;
private JLabel lblCodigo, lblDescricao;
private JButton cmdGravar;
private JTextField txtCodigo, txtDescricao;
private JPanel pnlCodigo, pnlDescricao;

public GUI_CadastroTipo1(java.awt.Frame parent, boolean modal) {
    instanciaComponentes();
    configuraComponentes();
    adicionaComponentes();
    ajustaJanela();
}

private void instanciaComponentes() {

    lblCodigo = new JLabel("Codigo:");
    txtCodigo = new JTextField();


    lblDescricao = new JLabel("Descrição:");
    txtDescricao = new JTextField();


    cmdGravar = new JButton();
    cmdGravar.setText("Adicionar");
    cmdGravar.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            // nesse caso, simplesmente adiciona um novo cliente aleat?rio
            //modelo.adiciona(ClienteDAO.geraContato());
        }
    });
}

private void configuraComponentes() {
    txtCodigo.setBounds(0, 0, 100, 25);
    txtDescricao.setBounds(0, 0, 200, 25);
}

private void adicionaComponentes() {
    JPanel pnlBotao = new JPanel();
    pnlBotao.add(cmdGravar);

    pnlCodigo = new JPanel();
    pnlCodigo.add(lblCodigo);
    pnlCodigo.add(txtCodigo);

    pnlDescricao = new JPanel();
    pnlDescricao.add(lblDescricao);
    pnlDescricao.add(txtDescricao);

    add(pnlCodigo, BorderLayout.NORTH);
    add(pnlDescricao, BorderLayout.CENTER);
    add(pnlBotao, BorderLayout.SOUTH);

}

private void ajustaJanela() {
    setTitle("Cadastro de Tipo");
    pack();
    setLocationRelativeTo(null);
    setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}

}[/code]

Amigo, “setBounds” é para usar com layout null, o que não é aconselhável… ou seja você ta setando valores de localização absolutos e ao mesmo tempo que usa um gerenciador de Layout(FlowLayout) que posiciona os componentes de modo relativo…
A solução seria usar um gerenciador de layout mesmo… sugiro o GridBagLayout… mas primeiro tera que aprender a usar…

Para setar um tamanho especifico ao seus componentes, use setPreferenceSize()… não funciona com todos gerenciadores de layouts, então tera que pesquisar.

Tutorial Java…
http://download.oracle.com/javase/tutorial/uiswing/layout/index.html

Para complementar…
http://devsv.wordpress.com/category/java/java-desktop/

Especialmente esse…
http://devsv.wordpress.com/2010/12/07/layout-manager-i-null/

Editado: Talvez para esse caso em especial FlowLayout resolve… é só setar um valor de distancia entre componentes “new FlowLayout(align, hgap, vgap)”.

Fuja do Null Layout…