Non riesco ad applicare alcune modifiche alla classe che ho postato.
Vorrei dare al jsp una dimensione (verticale) minima ed una massima oltre quale i suoi elementi interni non si ridimensionano ma usano lo scroll. Attualmente le sue dimensioni corrispondono alla larghezza della finestra e lo scroll orizzontale funziona
Vorrei settare una dimensione fissa per il pannello oppure impostare una sua dimensione minima o massima. Attualmente si adatta alla dimensione verticale del pannello.
Ho fatto alcune prove ma con scarso risultato. Finestraextends JFrame, JTabella sfrutta dei metodi di JTable. I metodi che restituiscono un component usaranno tutti la classe JTabella come i metodi fornitori e fumetti.
Se servono altri dettagli sui metodi chiedete pure. grazie in anticipo
codice:
class MyFrame extends JFrame {

    private static final long serialVersionUID = 1L;
    private Finestra frame;
    private JButton aggiungi,rimuovi,modifica,stampa;
    private static JTabella jTabella;
    private static JScrollPane jsp;
    private static JTable jt;
  
    public MyFrame(Finestra frame, String title, Component componente) {
        super(title);
        this.frame = frame;
        addWindowListener(new MyWindowListener1());
//        setMinimumSize(getMinimumSize());
//        jt.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
//        JToolBar pannello = new JToolBar();
        JPanel pannello = new JPanel(new GridLayout(1,4));
//        pannello.setMaximumSize(getMinimumSize());
		aggiungi=new JButton("Aggiungi");
		rimuovi=new JButton("Rimuovi");
		modifica=new JButton("Modifica");
		stampa=new JButton("Stampa");
		pannello.add(aggiungi);
		pannello.add(rimuovi);
		pannello.add(modifica);
		pannello.add(stampa);
		aggiungi.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
            	aggiungiActionPerformed(evt);
            }
        });
		rimuovi.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                rimuoviActionPerformed(evt);
            }
        });
		modifica.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                modificaActionPerformed(evt);
            }
        });
		stampa.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                stampaActionPerformed(evt);
            }
        });
		this.getContentPane().setLayout(new BorderLayout());
		this.getContentPane().add(BorderLayout.SOUTH,pannello);
	    this.getContentPane().add(BorderLayout.CENTER,componente);
	    setBounds(5, 80, 700, 500);
        setVisible(true);
    }
    
    private void aggiungiActionPerformed(ActionEvent evt) {
    	jTabella.aggiungi(null);
	}
    
    private void modificaActionPerformed(ActionEvent evt) {
    	jTabella.applicaModifiche();
	}
    
	private void stampaActionPerformed(ActionEvent evt) {
		jTabella.stampa();
	}
	
	private void rimuoviActionPerformed(ActionEvent evt) {
		jTabella.rimuovi();
	}

	public static Component clienti() {
		jTabella=new JTabellaFactory().creaTabella("clientii",false);
		jsp=new JScrollPane(jTabella.creaJTabella());
//		jsp.setBorder(BorderFactory.createLineBorder(Color.YELLOW));
		return jsp;
	}

	public static Component ordini() {
		jt=new JTable(5,5);
		jsp=new JScrollPane(jt);
//		jsp.setAutoscrolls(true);
		return jsp;
	}

	public static Component fornitori() {
		jTabella=new JTabellaFactory().creaTabella("fornitori",false);
		jsp=new JScrollPane(jTabella.creaJTabella());
//		jsp.setBorder(BorderFactory.createLineBorder(Color.YELLOW));
		return jsp;
	}

	public static Component abbonamenti() {
		jt=new JTable(100,100);
		jsp=new JScrollPane(jt);
//		jsp.setAutoscrolls(false);
		return jsp;
	}

	public static Component salagiochi() {
		jt=new JTable(5,5);
		jsp=new JScrollPane(jt);
		return jsp;
	}

	public static Component actionfigure() {
		jTabella=new JTabellaFactory().creaTabella("actionFigure",false);
		jsp=new JScrollPane(jTabella.creaJTabella());
//		jsp.setBorder(BorderFactory.createLineBorder(Color.YELLOW));
		return jsp;
	}

	public static Component fumetti() {
		jTabella=new JTabellaFactory().creaTabella("fumetti",false);
		jsp=new JScrollPane(jTabella.creaJTabella());
//		jsp.setBorder(BorderFactory.createLineBorder(Color.YELLOW));
		return jsp;
	}

	private class MyWindowListener1 extends WindowAdapter {
        public void windowClosing(WindowEvent we) {
            frame.frameChiuso();
            dispose();
        }
    }
    
}