Boa noite pessoal,
Estou estudando Interface Gráfica no Java e estou com dificuldade ao usar o GridBagLayout.
Nas minhas leitura parece que o GridBagLayout é muito usado para desenhar as telas, porém o GridBagLayout trabalha em grade e assume suas larguras e alturas.
Estou fazendo uma simples tela de login mas não estou conseguindo centralizar os botões de "OK" e "Cancelar", ele assume o tamanho do grid já definido.
Gostaria que os botões ficassem centralizados e com larguras iguais.
Vejam como está ficando a tela:
[img]http://img35.imageshack.us/img35/6530/loginexemplo.jpg[/img]
O código:public class TelaLogin extends JFrame {
private GridBagLayout layout;
private GridBagConstraints constraints;
//criando GUI
public TelaLogin() {
super("Autenticação");
this.setLocationRelativeTo(null);
layout = new GridBagLayout();
setLayout(layout);
constraints = new GridBagConstraints();
//criando componentes na GUI
JLabel userLabel = new JLabel("Usuário: ");
JLabel passLabel = new JLabel("Senha: ");
JTextField userTextField = new JTextField(10);
JPasswordField userPasswordField = new JPasswordField(10);
JButton okButton = new JButton("OK");
JButton cancelButton = new JButton("Cancelar");
constraints.insets = new Insets(3, 3, 3, 3);
constraints.anchor = GridBagConstraints.EAST;
addComponent(userLabel, 0, 0, 1, 1);
addComponent(userTextField, 0, 1, 1, 1);
addComponent(passLabel, 1, 0, 1, 1);
addComponent(userPasswordField, 1, 1, 1, 1);
constraints.fill = GridBagConstraints.HORIZONTAL;
addComponent(okButton, 2, 0, 1, 1);
addComponent(cancelButton, 2, 1, 1, 1);
}
private void addComponent(Component component, int linha, int coluna, int largura, int altura) {
constraints.gridx = coluna;
constraints.gridy = linha;
constraints.gridwidth = largura;
constraints.gridheight = altura;
layout.setConstraints(component, constraints);
add(component);
}
}