[RESOLVIDO] GridBagLayout não sai do centro

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.

Acho que não consegui explicar muito bem, então tô postando uma imagem pra ficar mais fácil.

Veja como os JTextFields e outros ficam todos no centro. Eu queria, de alguma forma tá colocando eles no canto esquerdo ou mais pra cima, já tentei com o GridBAgConstraints, mas não consegui. Quem puder dar uma luz, eu agradeço muito.

Abraços.

Acho que assim resolve:


package teste.swing;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;

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();
		
		JPanel containerPainelTabulado = new JPanel(new GridBagLayout());
		GridBagConstraints gc = new GridBagConstraints();
		gc.anchor =GridBagConstraints.NORTHWEST;
		gc.weightx = 10;
		gc.weighty = 10;
		
		containerPainelTabulado.add(painelTabuladoCadastro, gc);
		
		//painelTabuladoCadastro.setSize(800, 800);
		//painelPrincipal.addTab("Cadastro de Usuários", painelTabuladoCadastro);
		painelPrincipal.addTab("Cadastro de Usuários", containerPainelTabulado);
		
		
		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();
	}
	
}

Olá rogeriopaguilar,

Exatamente isso! Muito obrigado, mesmo!

Abração.