salve a tutti, sto realizzando una JDialog per l'inseriemnto di alcuni dati ma sto diventando matto, utilizzo GridBaglayout in modo che se l'utente ingrandisce o rimpiccolisce la finestra i componenti rimarranno sempre al centro....

ho scritto questo codice
codice:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.GridBagLayout;

public class dialogCliente extends JDialog{
    public Font ubuntu = new Font("ubuntu",Font.PLAIN,15);    
   
    
    public dialogCliente(){
        setTitle("Dati cliente");
        setModal(true);
        Container corpo = new JPanel();
        GridBagLayout layout = new GridBagLayout();
        GridBagConstraints lim = new GridBagConstraints();
        corpo.setLayout(layout);
        Font titolo = new Font("ubuntu", Font.BOLD, 20);
        
        Component intestazione = new JLabel("Dati cliente");
        intestazione.setFont(titolo);
        lim.gridx=0;
        lim.gridy=0;
        lim.gridwidth=2;
        layout.setConstraints(intestazione, lim);
        corpo.add(intestazione);
        
        Component rigaVuota= new JLabel(" ");
        lim.gridx=0;
        lim.gridy=1;
        lim.gridwidth=1;
        layout.setConstraints(rigaVuota,lim);
        corpo.add(rigaVuota);
        
        Component jlCognome = new jl("Cognome");
        lim.gridx=0;
        lim.gridy=2;
        lim.gridwidth=1;
        lim.ipadx=25;
        lim.ipady=8;
        lim.anchor = GridBagConstraints.EAST;
        layout.setConstraints(jlCognome,lim);
        corpo.add(jlCognome);
        
        Component jtfCognome = new jtf();
        lim.gridx=1;
        lim.gridy=2;
        lim.gridwidth=1;
        lim.ipady=0; lim.ipadx=300;
        lim.anchor = GridBagConstraints.WEST;
        layout.setConstraints(jtfCognome,lim);
        corpo.add(jtfCognome);
        
        Component jlNome =new jl("Nome");
        lim.gridx=0;
        lim.gridy=3;
        lim.gridwidth=1;
        lim.ipadx=25;
        lim.ipady=8;
        lim.anchor = GridBagConstraints.EAST;
        layout.setConstraints(jlNome,lim);
        corpo.add(jlNome);
        
        Component jtfNome = new jtf();
        lim.gridx=1;
        lim.gridy=3;
        lim.gridwidth=1;
        lim.ipady=0; lim.ipadx=300;
        lim.anchor=GridBagConstraints.WEST;
        layout.setConstraints(jtfNome,lim);
        corpo.add(jtfNome);
        
        Component jlIndirizzo = new jl("Indirizzo");
        lim.gridx=0; lim.gridy=4;
        lim.gridwidth=1;
        lim.ipadx=25; lim.ipady=8;
        lim.anchor=GridBagConstraints.EAST;
        layout.setConstraints(jlIndirizzo,lim);
        corpo.add(jlIndirizzo);
        
        Component jtfIndirizzo = new jtf();
        lim.gridx=1; lim.gridy=4;
        lim.gridwidth=1; lim.ipady=0; lim.ipadx=300;
        lim.anchor= GridBagConstraints.WEST;
        layout.setConstraints(jtfIndirizzo,lim);
        corpo.add(jtfIndirizzo);
       
        Component jlCitta = new jl("Città");
        lim.gridx=0; lim.gridy =5;
        lim.gridwidth=1;
        lim.ipadx=25; lim.ipady=8;
        lim.anchor=GridBagConstraints.EAST;
        layout.setConstraints(jlCitta,lim);
        corpo.add(jlCitta);
        
        Component jtfCitta = new jtf();
        lim.gridx=1; lim.gridy=5;
        lim.gridwidth=1; lim.ipady=0; lim.ipadx=300;
        lim.anchor= GridBagConstraints.WEST;
        layout.setConstraints(jtfCitta,lim);
        corpo.add(jtfCitta);
        
        Component jlTelefono = new jl("Telefono");
        lim.gridx=0; lim.gridy =6;
        lim.gridwidth=1;
        lim.ipadx=25; lim.ipady=8;
        lim.anchor=GridBagConstraints.EAST;
        layout.setConstraints(jlTelefono,lim);
        corpo.add(jlTelefono);
        
        Component jtfTelefono = new jtf();
        lim.gridx=1; lim.gridy=6;
        lim.gridwidth=1; lim.ipady=0; lim.ipadx=300;
        lim.anchor= GridBagConstraints.WEST;
        layout.setConstraints(jtfTelefono,lim);
        corpo.add(jtfTelefono);
        
        
        
        
        
        Container pulsanti= new JPanel();
        GridBagLayout layout2 = new GridBagLayout();
        GridBagConstraints lim2 = new GridBagConstraints();
        
        JButton jbAnnulla= new JButton("Annulla");
        jbAnnulla.setFont(ubuntu);
        lim2.gridx=0;
        lim2.gridy=0;
        layout2.setConstraints(jbAnnulla,lim2);
        pulsanti.add(jbAnnulla);
        
        JButton jbSalva = new JButton("  Salva  ");
        jbSalva.setFont(ubuntu);
        lim2.gridx=1;
        lim2.gridy=2;
        lim2.ipadx=50;
        layout2.setConstraints(jbSalva,lim2);
        
        lim.gridx=0;
        lim.gridy=7;
        lim.gridwidth=2;
        //lim.weightx=1;
        layout.setConstraints(pulsanti,lim);
        corpo.add(pulsanti);
        
        pulsanti.add(jbSalva);
        
        
        
        
        add(corpo);
        pack();
        
    
    
    }
non riesco fare in modo che i due JButton risultino al centro della finestra... vengono sempre spostati a destra o a sinistra... ora li ho messi in un altro contenitore, prima avevo provato a gestirli nello stesso delle label e delle textbox ma non c'è verso...
qualcuno sa dirmi come posso fare per centrare i due pulsanti?