Problema com o GridBagLayout

[code]package Tipo;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFormattedTextField;
import javax.swing.JLabel;
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 GridBagConstraints cons;
private GridBagLayout layout;

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

private void instanciaComponentes() {

    cons = new GridBagConstraints();
    layout = new GridBagLayout();
    this.setLayout(layout);


    lblCodigo = new JLabel("Codigo:",JLabel.RIGHT);

    
    txtCodigo = new JTextField();
    txtCodigo.setColumns(5);


    lblDescricao = new JLabel("Descrição:",JLabel.RIGHT);
    txtDescricao = new JFormattedTextField();
    txtDescricao.setColumns(40);


    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 adicionaComponentes() {

    cons.fill = GridBagConstraints.BOTH;
    cons.gridy = 0;
    cons.gridx = 0;

    cons.gridx = 0;
    cons.gridwidth = 2;
    add(lblCodigo, cons);
    cons.gridy = 2;
    add(lblDescricao,cons);

    cons.gridx = 2;
    cons.gridy = 0;
    add(txtCodigo, cons);
    
    cons.gridy = 2;
    cons.gridx = 2;
    cons.gridwidth = 2;
    add(txtDescricao,cons);        

}

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

}[/code]

Se você compilar o código acima verá que o txtCodigo está centralizado na tela, e eu quero que ele fique alinhado a esquerda, bem como o lblCodigo e o lblDescrição estejam alinhados a direita ( Ou seja os : pontos dos 2 juntos )

Se alguem puder me ajudar eu agradeço…

Abraços.

Dê uma olhada:

http://javafree.uol.com.br/artigo/5792/

Neste caso, tem que especificar uma âncora para o componente.

cons.anchor = GridBagConstraints.WEST; // para os text fields cons.anchor = GridBagConstraints.EAST; // para as labels