Ciao a tutti ho abbandonato definitivamente il codice che stavo scrivendo prima per questo ho deciso di fare una nuova discussione.

Ho creato un solo JFrame con 2 righe:

La prima riga contiene 4 pulsanti che abilitano le varie visualizzazioni della seconda riga.

Ho pensato di creare così 5 pannelli differenti:

1) contente i 4 bottoni
2) contente il Pannel abilitato dal bottone 1
3) contente il Pannel abilitato dal bottone 2
4) contente il Pannel abilitato dal bottone 3
5) contente il Pannel abilitato dal bottone 4

Ho pensato anche di usare un BorderLayout per posizionare i Pannelli all'interno del JFrame (il pannello dei bottoni BorderLayout.PAGE_START, e i vari

pannelli BorderLayout.CENTER)

Vi posto il codice. Per il momento è implementato solo un pannello (esattamente quello che deve apparire quando il bottone b2 viene premuto)

codice:
package it.polimi.swqtool.data;

import javax.swing.*;
import javax.swing.table.TableModel;
import java.awt.*;



public class ToolGUI {

	/**
	 * @param args
	 */
	
	private static void createAndShowGUI(){
		
		//creo la finestra
		JFrame frame = new JFrame("TopLevelDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        //creo il pannello contenente i bottoni
        JPanel bPanel = new JPanel();
        
        //creo i bottoni e li aggiungo al pannello
        JButton b1 = new JButton("Bottone 1");
        JButton b2 = new JButton("Bottone 2");
        JButton b3 = new JButton("Bottone 3");
        JButton b4 = new JButton("Bottone 4");    
        bPanel.add(b1);
        bPanel.add(b2);
        bPanel.add(b3);
        bPanel.add(b4);
        
        //creo le azioni dei vari bottoni
        

        
        //creo il pannello contente la tabella dei file
        JPanel filePanel = new JPanel(new BorderLayout());

        //creo la tabella e lo scrollpane che la contiene
        //creo i pulsanti ok e annulla 
        //e li aggiungo al pannello
        TableModel fileTable = new FileTableModel("file");
        JTable table = new JTable(fileTable);
        JScrollPane scrollPane = new JScrollPane(table);
        table.setFillsViewportHeight(true);
        JButton okFileB = new JButton("OK");
        JButton annullaFileB = new JButton("Annulla");
        JLabel label = new JLabel(); //uso una label per distanziare i bottoni ok annulla
        filePanel.add(scrollPane, BorderLayout.PAGE_START);
        filePanel.add(annullaFileB,BorderLayout.LINE_START);
        filePanel.add(label, BorderLayout.CENTER);
        filePanel.add(okFileB, BorderLayout.LINE_END);

        
        //aggiungo il pannello al frame nello spazio in alto
        frame.getContentPane().add(bPanel, BorderLayout.PAGE_START);
        
  
        
        
        //la rendo visibile
        frame.pack();
        frame.setVisible(true);

		
	}
	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });


	}

}
Il mio problema è: come posso fare in modo di far cambiare il pannello (della seconda riga) in base al bottone premuto?

Ho provato ad insere il codice già suggeritomi:

codice:
        b2.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                  frame.add(scrollPane, BorderLayout.CENTER);
            }
        });
ma ho dei problemi di visibilità.

Grazie.

mainetz.