GridBagLayout

0 respostas
rafaelviny

ae galera!

to com um problema com o posicionamento dos itens no gridbag!!

os jlable somente aparecem quando querem e nao to conseguindo colocar eles a ESQUERDA

esta é minha tela generica
package Grafica;

import Componentes.MeuButton;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class TelaModelo extends JFrame implements ActionListener {

   GridBagLayout gridTela;
   GridBagConstraints constraints;

   Container painel    = getContentPane();
   JPanel  jpCentral   = new JPanel();
   JPanel  jpInferior  = new JPanel();
   MeuButton jbInserir   = new MeuButton("  Inserir","/img/salvar.png");
   MeuButton jbAlterar   = new MeuButton("  Alterar","/img/alterar.png");
   MeuButton jbExcluir   = new MeuButton("  Excluir","/img/eliminar.png");
   MeuButton jbConfirmar = new MeuButton("Confirmar","/img/aceitar.png");
   MeuButton jbCancelar  = new MeuButton("  Cancelar","/img/cancelar.png");

   public TelaModelo(String titulo, int posicaoTelax, int posicaoTelay, int largura, int altura) {
      setTitle(titulo);
      setSize(largura,altura);
      setLocation(posicaoTelax,posicaoTelay);
      gridTela = new GridBagLayout();
      constraints = new GridBagConstraints();
      //painel.setLayout(new BorderLayout());
      painel.add("Center", jpCentral);
      painel.add("South", jpInferior);
      jpInferior.setLayout(new GridLayout(1,5));
      jpCentral.setLayout(gridTela);
      jpInferior.add(jbInserir);
      jpInferior.add(jbAlterar);
      jpInferior.add(jbExcluir);
      jpInferior.add(jbConfirmar);
      jpInferior.add(jbCancelar);
      jbInserir.addActionListener(this);
      jbAlterar.addActionListener(this);
      jbExcluir.addActionListener(this);
      jbConfirmar.addActionListener(this);
      jbCancelar.addActionListener(this);

      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setResizable(false);
      setVisible(true);
   }

   public void actionPerformed(ActionEvent evt) {
      if (evt.getSource() == jbInserir)
         habilitaBotoes(false);
      if (evt.getSource() == jbAlterar)
         habilitaBotoes(false);
      if (evt.getSource() == jbExcluir)
         habilitaBotoes(false);
      if (evt.getSource() == jbConfirmar)
         habilitaBotoes(true);
      if (evt.getSource() == jbCancelar)
         habilitaBotoes(true);
   }

   public void habilitaBotoes(boolean status) {
      jbInserir.setEnabled(status);
      jbAlterar.setEnabled(status);
      jbExcluir.setEnabled(status);
      jbConfirmar.setEnabled(!status);
      jbCancelar.setEnabled(!status);
   }
   public void addComponent(Object component, int linhaini, int colunaini,int largura, int altura, int ncoluna, int nlinha){
        constraints.gridx=colunaini;
        constraints.gridy=linhaini;
        constraints.gridwidth=ncoluna;
        constraints.gridheight=nlinha;
        constraints.weightx=largura;
        constraints.weighty=altura;
        gridTela.setConstraints((Component) component, constraints);
        jpCentral.add((Component)component);
        }

}

e esta é a tela que to com problema para colocar os botoes!
quando eles decidem aparecer eles ficam apenas no centro...
nao estou conseguindo colocar ele a Esquerda

package Grafica;

import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class TelaCadastroSafra extends TelaModelo{

        private JLabel jlCodigo = new JLabel("Código: ");
        private JLabel jlNome = new JLabel("Nome: ");
        private JLabel jlPeriodo = new JLabel("Periodo: ");
        private JLabel jlStatus = new JLabel("Status: ");
        private JTextField tfCodigo = new JTextField();
        private JTextField tfNome = new JTextField();
        private JTextField tfPeriodo = new JTextField();
        private String status[] = {"ATIVO","INATIVO"};
        private JComboBox jcStatus = new JComboBox(status);



    public TelaCadastroSafra(String titulo, int x, int y, int largura, int altura){
        super(titulo, x,y,largura,altura);
        addCampo();



    }


    private void addCampo() {
        
        constraints.fill = GridBagConstraints.BOTH;
        constraints.anchor = GridBagConstraints.WEST;

        constraints.insets = new Insets(5, 5, 5, 5);
        addComponent(jlCodigo,1, 0, 0, 0, 1, 1);

//        constraints.insets = new Insets(5,5,5,5);
//        addComponent(tfCodigo, 1, 1, 0, 0, 2, 1);

        
        constraints.insets = new Insets(5, 5, 5, 5);
        addComponent(jlNome, 2, 0, 0, 0, 1, 1);

        constraints.insets = new Insets(5, 5, 5, 5);
        addComponent(jlPeriodo, 3, 0, 0, 0, 1, 1);
        
        constraints.insets = new Insets(5, 5, 5, 5);
        addComponent(jlStatus, 4, 0, 0, 0, 1, 1);

        


    }
}

desde já agradeço

Criado 28 de junho de 2009
Respostas 0
Participantes 1