Stò impazzendo ma penso che la soluzione al mio problema possa essere semplice....

Estendo TableModel in questo modo:

codice:
import javax.swing.table.*;


public class GestioneTabella extends AbstractTableModel {
    
    String[] NomiColonne = {"Descrizione", "Valore"};
    String[][] Celle = {{"prova","Paolo"}};
    
    public int getColumnCount(){
        return NomiColonne.length;
    }
    
    public int getRowCount(){
        return Celle.length;
    }
    
    public Object getValueAt(int r, int c){
        return Celle[r][c];
    }
    
    public String getColumnName(int c){
        return NomiColonne[c];
    }
            
}
e poi istanzio il JTable in un JFrame in questo modo:

codice:
public class CreaXml extends JFrame {

    public CreaXml() 
        {
        setTitle("Crea XML");
        setBounds(20,20,700,500);
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        
        TableModel modello = new GestioneTabella();
        JTable tabella = new JTable(modello);
        tabella.setBounds(10,10,300, 300);

        getContentPane().setLayout(null);
        getContentPane().add(tabella);
        setVisible(true);     
            
        }



         public static void main(String args[])
         {
             CreaXml crea = new CreaXml();
         }

    }
Ma le intestazioni delle colonne "Descrizione" e "Valore" non compaiono nella JTable.