Boas,
Estou tentando criar minha primeira janela em swing com base em um código-fonte completo de uma janela que peguei na internet. Mas o formulario completo(que naum fui eu quem fez) os componentes estão aparecendo direito no noroeste da janela, mas no meu código que escrevi pra ficar no noroeste da janela tbm, os componentes ficam no meio da janela. Não consigo entender o pq não ficam na parte superior. Se alguém puder me ajudar.
Este é o formulário completo que estou olhando o source completo:
E este é como ta o meu formulário com os componentes no meio do formulário:
E o meu código fonte que está com problemas:
[code]
/* Primeira tentativa de criar uma janela
*
*
*/
import java.awt.;
import javax.swing.;
public class PrimeiraJanela extends JFrame
{
PrimeiraJanela()
{
super(“Programa”);
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.getContentPane().setLayout(new GridBagLayout());
//this.setVisible(true);
this.setSize(800,600);
//this.setResizable(true);
add("Código", new JTextField());
add("Nome", new JTextField());
add("Data de Nascimento", new JTextField(), "Telefone", new JTextField());
//add("E-mail", new JTextField(), "MSN",JTextField(), "ICQ", new JTextField());
}
private void add(String label, JComponent caixaDeTexto)
{
GridBagConstraints constraints = new GridBagConstraints();
// label não redimensiona
constraints.fill = GridBagConstraints.NONE;
// componentes aparecem no topo
constraints.anchor = GridBagConstraints.NORTHWEST;
// determina um espaço entre os componentes
constraints.insets = new Insets(5,5,5,5);
this.add(new JLabel(label),constraints);
// textfield redimensiona
constraints.fill = GridBagConstraints.BOTH;
// textfield cresce 100% no eixo_x ao redimensionar
constraints.weightx = 1; // 100%
// textfield ocupará todo o espaço remanescente no eixo_x
constraints.gridwidth = GridBagConstraints.REMAINDER;
this.add(caixaDeTexto,constraints);
}
private void add(String label, JComponent caixaDeTexto, String label2, JComponent caixaDeTexto2)
{
GridBagConstraints constraints = new GridBagConstraints();
// label não redimensiona
constraints.fill = GridBagConstraints.NONE;
// componentes aparecem no topo
constraints.anchor = GridBagConstraints.NORTHWEST;
constraints.insets = new Insets(5,5,5,5);
// label ocupará 1 célula
constraints.gridwidth = 1;
// zera redimensionamento do label
constraints.weightx = 0;
this.add(new JLabel(label), constraints);
// caixa de texto redimensiona
constraints.fill = GridBagConstraints.BOTH;
// caixa de texto ocupará 1 célula
constraints.gridwidth = 1;
// caixa de texto aumenta 100% no eixo_x ao redimensionar
constraints.weightx = 1;
this.add(caixaDeTexto, constraints);
// label não redimensiona
constraints.fill = GridBagConstraints.NONE;
// zera redimensionamento do label
constraints.weightx = 0;
this.add(new JLabel(label2), constraints);
// caixa de texto redimensiona
constraints.fill = GridBagConstraints.BOTH;
// última caixa de texto ocupa as células que sobrar
constraints.gridwidth = GridBagConstraints.REMAINDER;
// caixa de texto redimensiona 100% no eixo_x
constraints.weightx = 1;
this.add(caixaDeTexto2, constraints);
}
public static void main(String args[])
{
JFrame janela = new PrimeiraJanela();
janela.setVisible(true);
}
}[/code]
Se alguém puder me ajudar a resolver este problema fico mto agradecido pq ta complicado…já pesquisei em tudo q é lugar sobre GridBagLayout inclusive no site da Sun, ja joguei código pra todo lado e nada de dar certo…ta difícil…