Problema com o GridBagLayout

2 respostas
V
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);
    }
}

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.

2 Respostas

robinsonbsilva

Dê uma olhada:

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

Eric_Yuzo

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

Criado 26 de janeiro de 2011
Ultima resposta 26 de jan. de 2011
Respostas 2
Participantes 3