Boa noite pessoas,
Estou criando duas classes, uma a PrincipalView, que extende de JFrame e possui um JTabbedPane, com três JPanel dentro dessa JTabbedPane (sendo que cada um desses 3 JPanel é uma outra classe que extende de JPanel, tendo cada um suas próprias GridBagLayout e GridBagConstrant).
PrincipalView.java
[code]package views;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
public class PrincipalView extends JFrame {
private JTabbedPane painelPrincipal;
private JPanel painelTabuladoCadastro;
private JPanel painelTabuladoControle;
private JPanel paineltabuladoCadastroDepartamentos;
public PrincipalView() {
super("Sistema de Controle de Usuários");
this.iniciarComponentes();
}
private void iniciarComponentes() {
painelPrincipal = new JTabbedPane();
painelTabuladoCadastro = new PainelCadastro();
painelTabuladoCadastro.setSize(800, 800);
painelPrincipal.addTab("Cadastro de Usuários", painelTabuladoCadastro);
painelTabuladoControle = new JPanel();
painelPrincipal.addTab("Controle de Usuários", painelTabuladoControle);
paineltabuladoCadastroDepartamentos = new JPanel();
painelPrincipal.addTab("Cadastro de Departamentos", paineltabuladoCadastroDepartamentos);
painelPrincipal.setBounds(50, 50, 100, 100);
this.add(painelPrincipal);
this.setSize(800,600);
this.setResizable(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
PrincipalView principalView = new PrincipalView();
}
}
[/code]
PainelCadastro.java
[code]package views;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import models.Departamento;
import models.ModeloComboBoxDepartamento;
public class PainelCadastro extends JPanel {
private JLabel lblNomeUsuario;
private JLabel lblLogin;
private JLabel lblPsw;
private JLabel lblTipoUsuario;
private JLabel lblDeptoUsuario;
private JTextField txtNomeUsuario;
private JTextField txtLogin;
private JPasswordField txtPsw;
private JComboBox comboTipoUsuario;
private JComboBox comboDeptoUsuario;
private JButton btnCadastrar;
GridBagConstraints cons = new GridBagConstraints();
GridBagLayout layout = new GridBagLayout();
public PainelCadastro() {
super();
iniciarComponentes();
}
private void iniciarComponentes() {
lblNomeUsuario = new JLabel("Nome");
lblLogin = new JLabel("Login");
lblPsw = new JLabel("Senha");
lblTipoUsuario = new JLabel("Tipo de Usuário");
lblDeptoUsuario = new JLabel("Departamento");
txtNomeUsuario = new JTextField();
txtNomeUsuario.setColumns(15);
txtLogin = new JTextField();
txtLogin.setColumns(15);
txtPsw = new JPasswordField();
txtPsw.setColumns(15);
comboTipoUsuario = new JComboBox();
//comboTipoUsuario.setModel(null);
comboDeptoUsuario = new JComboBox<Departamento>();
comboDeptoUsuario.setModel(new ModeloComboBoxDepartamento());
btnCadastrar = new JButton("Cadastrar");
this.setLayout(layout);
cons.anchor = GridBagConstraints.WEST;
cons.insets = new Insets(1, 1, 5, 1);
cons.gridx = 0;
cons.gridy = 0;
this.add(lblNomeUsuario, cons);
cons.gridx = 1;
cons.gridy = 0;
this.add(txtNomeUsuario, cons);
cons.gridx = 0;
cons.gridy = 1;
this.add(lblLogin, cons);
cons.gridx = 1;
cons.gridy = 1;
this.add(txtLogin, cons);
cons.gridx = 0;
cons.gridy = 2;
this.add(lblPsw, cons);
cons.gridx = 1;
cons.gridy = 2;
this.add(txtPsw, cons);
cons.gridx = 0;
cons.gridy = 3;
this.add(lblTipoUsuario, cons);
cons.gridx = 1;
cons.gridy = 3;
this.add(comboTipoUsuario, cons);
cons.gridx = 0;
cons.gridy = 4;
this.add(lblDeptoUsuario, cons);
cons.gridx = 1;
cons.gridy = 4;
this.add(comboDeptoUsuario, cons);
cons.anchor = GridBagConstraints.LINE_END;
cons.gridx = 1;
cons.gridy = 5;
this.add(btnCadastrar, cons);
}
}
[/code]
Acontece que a PainelCadastro fica sempre ao centro da PrincipalView, deixando um enorme espaço nas bordas.
Queria diminuir esse espaço, se alguem tiver alguma dica, agradeço muito. Abraços.