Transpor de setBounds para GridBag

0 respostas
J

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:

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);
      }
   }

Com GridBagLayout para modificarem:

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);
      }
   }
Criado 7 de julho de 2005
Respostas 0
Participantes 1