Premesso sono alle primissime armi con Java

sto cercando di fare una maschera per l'inserimento di dati usando il GridBagLayout;

volevo sapere le seguenti informazioni:

1. è possibile dare una dimensione fissa alle colonne? onde evitare che se un componente lo inserisco in 2 colonne anzichè una mi ristringa a suo piacimento le altre colonne!!!!
2. è possibile dare una dimensione fissa al layout onde evitare che mi occupi tutta la pagina allargandosi a dismisura???

il seguente codice mi costruisce il mio form:


codice:
    public void disegnaFinestra()

{
pannelloDati = new JPanel();
	

c = getContentPane();


	Gblayout = new GridBagLayout();
	GbConstraints = new GridBagConstraints();
	pannelloDati.setLayout(Gblayout);
	GbConstraints.insets = new Insets(5, 5, 5, 5);
	GbConstraints.ipadx = 1;
	GbConstraints.ipady = 1;


	//mi creo le etichette
	proprietario = new JLabel("Nominativo");
	email = new JLabel("E-mail");
	oggetto = new JLabel("Oggetto");
	modalitaInvio = new JLabel("Modalità di Invio");
	maxAllegato =new JLabel ("Dimensione massima allegato");
	titoloSezione =new JLabel("Gestione nuova e-mail");
	blank =new JLabel("x");


	//mi creo i campi text
	campoProprietario = new JTextField ();
	campoProprietario.setName("nominativo");

	campoEmail = new JTextField ();
	campoEmail.setName("email");


	campoMaxAllegato = new JTextField ();
	campoMaxAllegato.setName("maxAllegato");

	String condizioneInvio[] = {"Client di posta predefinito", "Form di invio"};

	campoModalitaInvio = new JComboBox (condizioneInvio);
	campoModalitaInvio.setName("provincia");


	campoOggetto = new JTextArea();
	campoOggetto.setName("oggetto");

	pulsanteIndietro = new PulsanteStandard("Indietro");
	pulsanteSalva = new PulsanteStandard("Salva");


	makeConstraints(0,0,10,1,0,0, titoloSezione);
	GbConstraints.fill = GridBagConstraints.NONE;
	GbConstraints.anchor = GridBagConstraints.NORTHEAST;

	makeConstraints(1,0,1,1,0,0, proprietario);
	makeConstraints(1,5,1,1,0,0, email);

	makeConstraints(2,0,1,1,0,0, modalitaInvio);
	makeConstraints(2,5,2,1,0,0, maxAllegato);

	makeConstraints(3,0,1,1,0,0, oggetto);

	GbConstraints.anchor = GridBagConstraints.NORTHEAST;
	makeConstraints(6,0,5,1,0,0, pulsanteIndietro);

	GbConstraints.anchor = GridBagConstraints.NORTHWEST;
	makeConstraints(6,5,5,1,0,0, pulsanteSalva);


	GbConstraints.fill = GridBagConstraints.HORIZONTAL ;

	makeConstraints(1,1,4,1,1,1, campoProprietario);
	makeConstraints(1,6,4,1,1,1, campoEmail);

	makeConstraints(2,1,4,1,1,1, campoModalitaInvio);
	makeConstraints(2,7,4,1,1,1, campoMaxAllegato);

	GbConstraints.fill = GridBagConstraints.BOTH;
	GbConstraints.anchor = GridBagConstraints.NORTHEAST;
	makeConstraints(3,1,9,3,1,1, campoOggetto);


	setSize(Impostazioni.getDimXFinestra(), Impostazioni.getDimYFinestra());

	c.add(pannelloDati);


	this.setResizable(false);
	this.setSize(Impostazioni.getDimXFinestra(), Impostazioni.getDimYFinestra());

}


private void makeConstraints (
      int y,int x,     /* posizione nella griglia */
    int lx, int ly,  /* quante celle occupa (in orizzontale e verticale)*/
    int wx, int wy,   /* dimensione relativa rispetto al pannello */
    Component comp /* componente da aggiungere */
  )
  {
      GbConstraints.gridx = x; //colonna
      GbConstraints.gridy = y; //riga
      GbConstraints.gridwidth = lx;
      GbConstraints.gridheight = ly;
      GbConstraints.weightx = wx;
      GbConstraints.weighty = wy;

      Gblayout.setConstraints (comp, GbConstraints );
      pannelloDati.add(comp);
  }