Eu estou montando uma tela de cadastros utilizando o GridBagLayout, só que eu não estou conseguindo colocar um pequeno espaço entre as linhas…
As linhas com os JTextFild estão coladas praticamente deixando a imagem um pouco estranha
Obrigado
ve se serve usei Box para separar
[code]
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import javax.swing.Box;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
public class Categoria extends JFrame{
private static final long serialVersionUID = 1L;
private Container c;
private JPanel pn_centro;
private JPanel pn_grade;
private GridBagLayout grid;
private GridBagConstraints grid_const;
private JLabel lb_id_categoria;
private JLabel lb_descricao;
private JLabel lb_tipo;
private JLabel lb_cabecalho;
private JTextField tx_id_categoria;
private JTextField tx_descricao;
private ButtonGroup bg_tipo;
private JRadioButton rb_credito;
private JRadioButton rb_debito;
private Box bx_caixa;
public Categoria(){
super();
inicializar();
}
public void inicializar(){
instanciar();
configurar();
agrupar();
posicionar();
}
/**^^^^^^^^^^^Instancia os objetos^^^^^^^^^^^^^^*/
public void instanciar(){
c = getContentPane();
pn_centro = new JPanel();
pn_grade = new JPanel();
lb_id_categoria = new JLabel("Código da categoria: ",SwingConstants.RIGHT);
lb_descricao = new JLabel("Descrição da categoria: ",SwingConstants.RIGHT);
lb_tipo = new JLabel("Tipo: ",SwingConstants.RIGHT);
lb_cabecalho = new JLabel("Cadastro de Categorias",SwingConstants.CENTER);
tx_id_categoria = new JTextField(12);
tx_descricao = new JTextField(30);
bg_tipo = new ButtonGroup();
rb_credito = new JRadioButton("Crédito ", false);
rb_credito.setBackground(new Color(229,230,231));
rb_debito = new JRadioButton("Débito ", true);
rb_debito.setBackground (new Color(229,230,231));
grid = new GridBagLayout();
grid_const = new GridBagConstraints();
bx_caixa = Box.createHorizontalBox();
}
/**Configura cada um dos objetos */
public void configurar(){
lb_cabecalho.setFont(new Font("Monoespaced",Font.BOLD, 30));
lb_cabecalho.setForeground(Color.DARK_GRAY);
tx_id_categoria.setForeground(new Color(224, 7, 149));
pn_centro.setBackground(new Color(229,230,231));
pn_grade.setLayout(new GridLayout(1,2));
pn_grade.setBackground(new Color(229,230,231));
c.setBackground(new Color(229,230,231));
bx_caixa.add(Box.createRigidArea(new Dimension(5,50)));
}
/**Os objetos são agrupados no frame e dentro de outros objetos*/
public void agrupar(){
c.setLayout(new BorderLayout());
bg_tipo.add(rb_credito);
bg_tipo.add(rb_debito);
/***** Alinha todos os componentes a direita *****/
grid_const.anchor = GridBagConstraints.WEST;
pn_grade.add(rb_credito);
pn_grade.add(rb_debito);
addCompPnCentro(lb_id_categoria,0,0,2,2);
addCompPnCentro(tx_id_categoria,0,2,2,2);
addCompPnCentro(bx_caixa,2,0,2,2);
addCompPnCentro(lb_descricao,2,0,2,2);
addCompPnCentro(tx_descricao,2,2,2,2);
grid_const.anchor = GridBagConstraints.EAST;
addCompPnCentro(lb_tipo,4,0,2,2);
addCompPnCentro(pn_grade,4,2,1,1);
pn_centro.setLayout(grid);
c.add("North",lb_cabecalho);
c.add("Center",pn_centro);
}
/**Faz o posicionamento dos objetos na inteface.*/
public void posicionar(){
setTitle("Formulário para Manipular a Tabela Categoria");
setSize(600,250);
setLocationRelativeTo(null); //Centraliza o formulário
setVisible(true);
}
/******** Método para trabalhar e ativar as restrições ******
**************** de GridBagConstraints nos paineis". ********/
private void addCompPnCentro(Component componente,
int linha, int coluna, int largura, int altura){
grid_const.gridx = coluna;
grid_const.gridy = linha;
grid_const.gridwidth = largura;
grid_const.gridheight = altura;
grid.setConstraints(componente, grid_const);
pn_centro.add(componente);
}
public static void main(String[] args) {
new Categoria();
}
}[/code]
Cara, da uma pesquisada sobre JGoodies Forms.
Garanto que você vai achar muito melhor do que qualquer outro gerenciador de layout.
Confira as propriedades “insets” e “rowHeights”.
Mais informações aqui: http://showbitsness.wordpress.com/2009/02/15/um-pouco-sobre-gridbaglayout/