Ho fatto un po' di confusione!

TABELLA ORDINI
codice:
import javax.swing.table.DefaultTableModel;

public class TabellaOrdini extends DefaultTableModel {
    private Object[][] data;
    private String[] nomi;
    private int ultimaRiga = 0;

    /** Costruttore che inizializza la tabella passandole la matrice
     *  data e una stringa contenente i nomi delle colonne.
     */
    public TabellaOrdini(Object[][] data, String[] nomi) {
        super(data, nomi);
    }
    
    /** Costruttore che richiama il costruttore di default di
     *  DefaultTableModel (tabella con zero righe e zero colonne.
     */
    public TabellaOrdini() {
        super();
    }
    
    
    
    /** Specifica se le celle sono editabili. */
    public boolean isCellEditable(int row, int col) {
        if ((row < (ultimaRiga - 1)) &&  (col > 0)) return true;
        else return false;
    }
    
    /** Restituisce il valore dell'ultima riga. */
    public int getLastRow() {
        return ultimaRiga;
    }
    
    /** Inizializza il valore dell'ultima riga. */
    public void setLastRow(int lastRow) {
        ultimaRiga = lastRow;
    }
    
}
GESTIONE TABELLA ORDINI
codice:
import javax.swing.table.*;
import javax.swing.*;

public class GestioneTabellaOrdini {
    private ListNode CLIENTI, PRODOTTI;
    private JTable table;

    public GestioneTabellaOrdini(ListNode CLIENTI, ListNode PRODOTTI) {
        this.CLIENTI = CLIENTI;
        this.PRODOTTI = PRODOTTI;
        JTable table = new JTable();
    }
    
    public JTable creaTabellaOrdini() {
        
        GestioneProdotti gp = new GestioneProdotti();
        String[] nomiProdotti = gp.getNomiProdotti(PRODOTTI);
        int lunghezza = nomiProdotti.length;
        String[] Prodotti = new String[lunghezza + 1];
        Prodotti[0] = "";
        for (int i=1; i<=lunghezza; i++){
            Prodotti[i] = nomiProdotti[i-1];
        }
        
        GestioneClienti gc = new GestioneClienti();
        String[] nomiClienti = gc.getNomiClienti(CLIENTI);
        int lung = nomiClienti.length;
        String[] Clienti = new String[lung + 2];
        for (int i=0; i<lung; i++) {
            Clienti[i] = nomiClienti[i];
        }
        Clienti[lung] = "";
        Clienti[lung + 1] = "TOTALI";
        
        Object[][] datiCelle = new Object[Clienti.length][Prodotti.length];
        
        /** Costruisco la griglia mettendo in prima colonna i clienti. */
        for (int i=0; i<Clienti.length; i++) {
            datiCelle[i][0] = Clienti[i];
            for (int k=1; k<Prodotti.length; k++) {
                datiCelle[i][k] = "";
            }
        }
        
        TabellaOrdini myTable = new TabellaOrdini(datiCelle, Prodotti);
        myTable.setLastRow(Clienti.length-1);
        
        table.setModel(myTable);
        return table;
        
        }
        
        public void tablePropertyChange(java.beans.PropertyChangeEvent evt) {
            
            int indiceRiga = table.getSelectionModel().getAnchorSelectionIndex();
            int indiceColonna = table.getColumnModel().getSelectionModel().getAnchorSelectionIndex();
            int righe = table.getModel().getRowCount()-2;
            float somma = 0;
            
            if (indiceColonna != -1) {
                for (int i=0; i<righe; i++) {
                    Object valore = table.getValueAt(i, indiceColonna);
                    somma = somma + Float.parseFloat(valore.toString());
                }
                table.setValueAt(somma, table.getModel().getRowCount()-1, indiceColonna);
            }
        }
        
}
PANNELLO TABELLA
codice:
public class PannelloTabella extends JPanel {
    private ListNode CLIENTI, PRODOTTI;
    private JTable t;
    private JScrollPane scrollPane;

    public PannelloTabella(ListNode CLIENTI, ListNode PRODOTTI) {
        this.CLIENTI = CLIENTI;
        this.PRODOTTI = PRODOTTI;
        
        GestioneTabellaOrdini gt = new GestioneTabellaOrdini(CLIENTI, PRODOTTI);
        t = gt.creaTabellaOrdini();
        scrollPane = new JScrollPane(t);
        add(scrollPane);
        
    }
    
    
}
La tabella non viene visualizzata, in più il compilatore mi segnala questa eccezione:
codice:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at GestioneTabellaOrdini.creaTabellaOrdini(GestioneTabellaOrdini.java:56)
    at PannelloTabella.<init>(PannelloTabella.java:24)
Le righe interessate dall'eccezione sono quelle in rosso!

Qualcuno può aiutarmi?
GRAZIE MILLE!