Pessoal,
estou fazendo um exemplo de GUI do livro do Deitel e não consigo fazer o JLabel ficar posicionado no alto à esquerda do JFrame. Estou usando o GridBagLayout. Pelo livro é fácil de entender, mas o comportamento visual é muito doido. Quero que o componente vá para a linha zero, só que a linha zero já começa no meio do frame. Alguém pode ajudar?
// Configura a GUI
public Janela()
{
super("Teste GUI");
// Instancia e define o grid bag
container = getContentPane();
layout = new GridBagLayout();
container.setLayout(layout);
// Instancia as regras de posicionamento
posicionamento = new GridBagConstraints();
// Configura componentes
configLabelProduto();
configTextoProduto();
configLabelQuantidade();
configTextoQuantidade();
posicionamento.fill = GridBagConstraints.HORIZONTAL;
adicionaComponente(lblProduto, 0, 0, 1, 2);
posicionamento.fill = GridBagConstraints.HORIZONTAL;
adicionaComponente(txtProduto, 0, 2, 1, 2);
// Configurando o frame principal
setExtendedState(MAXIMIZED_BOTH);
setSize(1366, 768);
setResizable(true);
setVisible(true);
}
private void adicionaComponente(Component componente, int linha, int coluna, int largura, int altura)
{
// Define a posição
posicionamento.gridx = coluna;
posicionamento.gridy = linha; // AQUI É O PROBLEMA IMAGINO
// Define o espaçamento
posicionamento.gridwidth = largura;
posicionamento.gridheight = altura;
posicionamento.weightx = 1;
// Adiciona efetivamente ao container
layout.setConstraints(componente , posicionamento);
container.add(componente);
}