Aggiunta riga su jTable

di il
4 risposte

Aggiunta riga su jTable

Ciao a tutti,
ho un problemino con una tabella, praticamente ho bisogno di aggiungere una riga ad una tabella già esistente.
Modifico il modello in questo modo

        //Riga vuota sotto pronta per l'inserimento
//        model=(DefaultTableModel) jTableControllopH.getModel();
        model.addRow(new Object[]{(dateFormat.format(newDate.getTime()).toString()),"","","","","","","","","","",user,""});
        lastRow=model.getRowCount();
//        jTableControllopH.setModel(model);
Il problema sorge quanto vado a cercare di leggere i valori inseriti dall'utente su quella riga (appena aggiunta al modello) per il sistema quella riga della tabella non esiste e mi ritorna l'errore di indice.
Qualcuno sa darmi una dritta?
Grazie anticipatamente a tutti

4 Risposte

  • Re: Aggiunta riga su jTable

    loop4633 ha scritto:


    Il problema sorge quanto vado a cercare di leggere i valori inseriti dall'utente su quella riga (appena aggiunta al modello) per il sistema quella riga della tabella non esiste e mi ritorna l'errore di indice.
    A dire il vero, il problema non è particolarmente chiaro. Se fai un addRow sul DefaultTableModel, la struttura dati interna cambia immediatamente (aggiungendo una riga al Vector principale interno). Quindi un getRowCount sul model immediatamente successivo al addRow riflette correttamente l'aggiunta della riga.
    La "view" (vista) che è ciò che si vede della tabella, non è immediatamente aggiornata, presumibilmente lo sarà in un momento successivo, appena il EDT è libero.


    P.S. e risettare il model nella tabella dopo un addRow, è assolutamente inutile.
  • Re: Aggiunta riga su jTable

    Immaginavo di non essere stato esattamente chiaro
    Cerco di spiegarmi meglio... l'aggiornamento, la vista e tutto va assolutamente bene io vedo la riga nuova con i due campi (data e user) che passo e posso scriverci, il problema è che quando voglio inviare quei dati sul database praticamente mi restituisce l'errore
    
    java.lang.ArrayIndexOutOfBoundsException: 3 >= 3
    
    ma lastRow è correttamente aggiorato, solo che la riga nuova è come se non esistesse...
    spero di essere stato un tantino più chiaro
  • Re: Aggiunta riga su jTable

    loop4633 ha scritto:


    il problema è che quando voglio inviare quei dati sul database praticamente mi restituisce l'errore

    ma lastRow è correttamente aggiorato
    Il problema direi che è "logico", il lastRow NON è getRowCount() ma getRowCount()-1.
    Cioè o ragioni per indice <= lastRow oppure indice < rowcount
  • Re: Aggiunta riga su jTable

    Grazie mille, a volte ci si blocca ora su stupidate assolute.
    Ciao
Devi accedere o registrarti per scrivere nel forum
4 risposte