Acho que fiz tudo certo, mas os botões ficam um em cima do outro, pq?
package primeira.swing;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class PrimeiraSwing extends JFrame
{
String nome;
JLabel labelNome;
JTextField tfNome;
JLabel labelEndereco;
JTextField tfendereco;
JButton botaoSair;
JButton limparBotao;
public PrimeiraSwing()
{
super("Swing Java");
GridBagLayout layout = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
getContentPane().setLayout(layout);
labelNome = new JLabel("Nome");
labelEndereco = new JLabel("Endereço");
tfNome = new JTextField(30);
tfendereco = new JTextField(30);
botaoSair = new JButton("Sair");
limparBotao = new JButton("Limpar");
gbc.gridy = 0; // linha
gbc.gridx = 0; // coluna
gbc.insets = new Insets(5, 5, 5, 5);
layout.setConstraints(labelNome, gbc);
getContentPane().add(labelNome);
gbc.gridy = 1; // linha
gbc.gridx = 0;
gbc.insets = new Insets(5, 5, 5, 5);
layout.setConstraints(labelEndereco, gbc);
getContentPane().add(labelEndereco);
gbc.gridy = 0;
gbc.gridx = 1;
gbc.insets = new Insets(5, 5, 5, 5);
layout.setConstraints(tfNome, gbc);
getContentPane().add(tfNome);
gbc.gridy = 1; // linha
gbc.gridx = 1;
gbc.insets = new Insets(5, 5, 5, 5);
layout.setConstraints(tfendereco, gbc);
getContentPane().add(tfendereco);
gbc.gridy = 2; // linha três
gbc.gridx = 1; // coluna dois
gbc.insets = new Insets(5, 5, 5, 5);
//gbc.gridwidth = 1; // ocupa o espaço de três colunas
layout.setConstraints(botaoSair, gbc);
getContentPane().add(botaoSair);
gbc.gridy = 2;
gbc.gridy = 2; // coluna
gbc.insets = new Insets(5, 5, 5, 5);
//gbc.gridwidth = 2;
layout.setConstraints(limparBotao, gbc);
getContentPane().add(limparBotao);
this.centralizarTela(); // chamada do método
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
private void centralizarTela()
{
/* Centralizando a tela
setLocation(((Toolkit.getDefaultToolkit().getScreenSize().width / 2) - (getWidth() / 2 )),
((Toolkit.getDefaultToolkit().getScreenSize().height / 2) - (getHeight() / 2)));
*/
//setLocationRelativeTo(null);
setLocation(450, 300);
}
public static void main(String[] args)
{
new PrimeiraSwing();
}
}
Botões fica um em cima do outro. Pq?
M
2 Respostas
No trecho abaixo
gbc.gridy = 2;
gbc.gridy = 2; // coluna
gbc.insets = new Insets(5, 5, 5, 5);
//gbc.gridwidth = 2;
layout.setConstraints(limparBotao, gbc);
getContentPane().add(limparBotao);
GBC.GRIDY = 2 ( EM DUAS LINHAS)
a segunda linha deve referir-se a gbc.gridX
Tópico movido para o fórum de interface gráfica.
Criado 7 de agosto de 2012
Ultima resposta 10 de ago. de 2012
Respostas 2
Participantes 3