Tenho dois códigos,um setando o layout como null, e outro como GridBagLayout,com o layout null, eu
consigo colocar os componentes a onde eu quero, só que com o GridBagLayout não,eu tentei começar o código com o Grid,
eu queria que alguém modificasse o código com o GridBagLayout para deixar parecido com o layout null,
tipo,com aquele espaçamento que tem entre os JTextFields etc…,pois com isso eu entenderia direito como se usa o Grid!
Valeu desde já!
Com setBounds:
[code]import javax.swing.;
import java.awt.;
import java.awt.event.*;
public class Usuario extends JFrame{
JTextField nome,cpf,rg,
JLabel lnome,lcpf,lrg,
private Container c;
public Usuario()
{
super("Cadastro de Funcionário");
c = getContentPane();
c.setLayout(null);
getContentPane().setBackground( new Color(220,220,180));
//Constroi campo de texto com tamanho padrao
JTextField nome = new JTextField ( 60 );
JTextField cpf = new JTextField(12);
JTextField rg = new JTextField(9);
// Aqui são os rótulos
JLabel lnome = new JLabel("Nome");
lnome.setForeground(Color.black);
lnome.setFont( new Font("",Font.BOLD,12));
JLabel lcpf = new JLabel("CPF");
lcpf.setForeground(Color.black);
lcpf.setFont( new Font("",Font.BOLD,12));
JLabel lrg = new JLabel("RG");
lrg.setForeground(Color.black);
lrg.setFont( new Font("",Font.BOLD,12));
setSize(600,620);
setVisible(true);
setLocation(200,50);
c.add(nome);nome.setBounds(150,40,250,20);
c.add(lnome);lnome.setBounds(45,40,250,20);
c.add(cpf);cpf.setBounds(150,70,110,20);
c.add(lcpf);lcpf.setBounds(45,70,250,20);
c.add(rg);rg.setBounds(320,70,120,20);
c.add(lrg);lrg.setBounds(285,70,250,20);
}
public static void main ( String args [] )
{
JFrame Janela = new Usuario();
Janela.setVisible(true);// Torna o painel visivel
//Comandos para fechamento da aplicação
WindowListener x = new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
};
Janela.addWindowListener(x);
}
}[/code]
Com GridBagLayout para modificarem:
[code]import javax.swing.;
import java.awt.;
import java.awt.event.*;
public class Usuario extends JFrame{
private JTextField nome,cpf,rg,
private JLabel lnome,lcpf,lrg,
private Container c;
private GridBagLayout layout;
private GridBagConstraints constraints;
public Usuario()
{
super("Cadastro de Funcionário");
c = getContentPane();
layout = new GridBagLayout();
c.setLayout(layout);
getContentPane().setBackground( new Color(220,220,180));
/* inicializa as restrições do gridbag */
constraints = new GridBagConstraints();
//Constroi campo de texto com tamanho padrao
JTextField nome = new JTextField (" 60 ");
JTextField cpf = new JTextField("12 ");
JTextField rg = new JTextField("9 ");
// Aqui são os rótulos
JLabel lnome = new JLabel("Nome");
lnome.setForeground(Color.black);
lnome.setFont( new Font("",Font.BOLD,12));
JLabel lcpf = new JLabel("CPF");
lcpf.setForeground(Color.black);
lcpf.setFont( new Font("",Font.BOLD,12));
JLabel lrg = new JLabel("RG");
lrg.setForeground(Color.black);
lrg.setFont( new Font("",Font.BOLD,12));
setSize(600,620);
setVisible(true);
setLocation(200,50);
constraints.weightx=0;
constraints.weighty=0;
addComponent( nome, 1, 2, 1, 1 );
addComponent( lnome, 1, 1, 1, 1 );
addComponent( cpf, 2, 2, 1, 1 );
addComponent( lcpf, 2, 1, 1, 1 );
addComponent( rg, 2, 4, 1, 1 );
addComponent( lrg, 2, 3, 1, 1 );
}
private void addComponent( Component component,int row,int column,
int width, int height)
{
constraints.gridx = column;
constraints.gridy = row;
constraints.gridwidth = width;
constraints.gridheight = height;
layout.setConstraints( component,constraints);
c.add( component );
}
public static void main ( String args [] )
{
JFrame Janela = new Usuario();
Janela.setVisible(true);// Torna o painel visivel
//Comandos para fechamento da aplicação
WindowListener x = new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
};
Janela.addWindowListener(x);
}
}[/code]