Bom dia pessoal,
Estou aprendendo a trabalhar com Layouts e achei o GridBagLayout muito interessante por ser extremamente flexível, entretanto estou tendo algumas dúvidas.
Eu gostaria de criar um Layout com a cara do código abaixo:
package Testes;
import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class A80GBL extends JFrame{
public A80GBL() {
super("Calculadora com GridBagLayout");
Container c = getContentPane();
GridBagLayout layout = new GridBagLayout();
GridBagConstraints cons = new GridBagConstraints();
c.setLayout(layout);
cons.fill = GridBagConstraints.BOTH;
cons.ipady = 10;
cons.gridy = 0;
cons.gridx = 0;
cons.gridwidth = 4;
c.add(new JTextField(), cons);
cons.gridy = 1;
cons.gridwidth = 1;
cons.gridx = 1;
c.add(new JButton(), cons);
cons.gridx = 2;
c.add(new JButton(), cons);
cons.gridx = 3;
c.add(new JButton(), cons);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 300);
}
public static void main(String[] args) {
new A80GBL();
}
}
No meu pensamento ao implementar o código abaixo o que deveria ser disponibilizado é:
|*********|
|(JTextArea)|
| ************************************ |
|---|
| … |
| …espaço… |
| …vazio… |
…--------------------------------------
Mas o que na verdade aparece na janela é:
|**********|
|(JTextArea)|
| *************************** |
|---|
| ******** |
| *(JButton) |
| ******** |
Saberiam por favor me explicar o por quê isso acontece?
Obrigado,
