Originariamente inviato da andbin
beh, dipende da quale approccio scegli per "cambiare" i componenti (i tuoi pannelli).
Il problema e che non sò proprio come si possa fare.. io avevo pensato a una cosa del genere:
codice:
public class  MyFrame extends JFrame {

    public MyFrame () {
    
    Toolkit kit = Toolkit.getDefaultToolkit();
    Dimension screenSize = kit.getScreenSize();
    int screenHeight = screenSize.height;
    int screenWidth = screenSize.width;
    setSize (800,600);
    setLocation (screenWidth/5,screenHeight/8);
    Image img = kit.getImage("src/Image//icon.gif");
    setIconImage(img);
    setTitle("Management Travels - © Crisomolo Alberto");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    //in questo pannello potremo aggiungere componenti come JButton…
    Container c = getContentPane();

    MyPanel panel = new MyPanel();

    c.add(panel);

    this.setVisible(true);
    }

    public class MyPanel extends JPanel implements ActionListener {
        JPanel panbut=new JPanel();
        JPanel panimg=new JPanel();
        JButton b, b2;

         public MyPanel(){
            super();
            setLayout(new BorderLayout());

            lab1.setFont( new Font( "Arial", Font.BOLD, 30 ) );
            JLabel world=new JLabel(new ImageIcon("src/Image//world_gold.gif"));
            b = new JButton("Aggiungi Agenzia");
            b2 = new JButton("Gestisci Agenzia");

            b.addActionListener(this);

            panimg.setBackground(Color.DARK_GRAY);
            panimg.setLayout(new BorderLayout());
            panimg.add(world, BorderLayout.CENTER);
            
            add(lab1,BorderLayout.NORTH);
            add(panimg,BorderLayout.CENTER);

               panbut.setLayout(new GridLayout(1, 2, 10, 0));
               panbut.add(b);
               panbut.add(b2);
               add(panbut, BorderLayout.SOUTH);
            
        }

       public void actionPerformed(ActionEvent e) {
            if (e.getSource() == b) {
                    Agenzie agepan= new Agenzie();
                    this.add(agepan);
            }else if(e.getSource() == b2) {

            }
        }
    }   
       public class Agenzie extends JPanel{
            JPanel panbut=new JPanel();
             JButton b3;

             public Agenzie(){//qui non entra proprio
                //inseriro il form per aggiungere una nuova agenzia 
                b3 = new JButton("Crea Agenzia");
                 panbut.add(b3);
                 add(panbut);
             }
       }
    
}
ossia che quando premo il tasto AGGIUNGI AGENZIA mi crei un nuovo pannello e lo sovreapponesse a quello precedente, ma non so se sia corretta come implementazione..

infatti non mi funziona..