Newsgroup: it.comp.java
Titolo: ma come di aggiunge una riga in una JTable

Quale è il metodo per aggiungere una NUOVA riga ad una JTable?
Devo inserire dei valori dopo un evento ma come faccio??
Non c'è nulla come newRow() addRow() ?
--------------------------------
Inviato via 
http://usenet.libero.it

Silvia wrote:

Ciao vedo che stai proprio impazzendo dietro a questa JTable.
Per aggiungere una riga alla tabella devi fare usare  
setValueAt(valore,riga,colonna).
ciao

 setValueAt(valore,riga,colonna).
Ma io uso quello.
Tuttavia non mi aggiunge niente.
Partendo da una tabella vuota, con tab.setValueAt("ok",0,0) oppure
tab.setValueAt("ok",1,0), non vedo assolutamente nulla!!
Why??


 setValueAt(valore,riga,colonna).
Ma io uso quello.
Tuttavia non mi aggiunge niente.
Partendo da una tabella vuota, con tab.setValueAt("ok",0,0) oppure
tab.setValueAt("ok",1,0), non vedo assolutamente nulla!!
Why??


 Why??
ma hai implementato il TableModel con il metodo getValueAt?


Scusa ma come dovrei implementarlo?
Io lo implemento cosi:
public Object getValueAt(int aRow, int aColumn) {
        Vector row = (Vector)rows.elementAt(aRow);
        return row.elementAt(aColumn);


Silvia wrote:

Stavo dando un'occhiata a DefaultTableModel e addRow c'è. Prova a vedere. 
C'è addRow(Vector rowData) e addRow(Object[] rowData)
E comunque con setValueAt tu dici qual'è il valore a una certa riga e 
colonna però prima devi dire quante righe ha la tua tabella usando 
setRowCount(int).
Usando addRow in teoria dovrebbe incrementare in automatico il count di 
righe della tabella. Però non l'ho provato quindi non so.

 righe della tabella. Però non l'ho provato quindi non so.
Intanto ti ringrazio.
Non avevo visto quei metodi perchè con il getModel avevo il TableModel e non
il DefaultTableModel.
Ora con un casting ho risolto questo primo passo.
Ora sia che faccio insertRow, addRow, setRow..ho sempre l'eccezione:
ArrayIndexOutOfBoundsException: 0 >= 0
Io devo semplicemente inserire la prima riga...:-((
ps. Io do alla tabella un defaultTableModel come modello, ma non lo riscrivo
di mio.
E' proprio qui l'errore?


 E' proprio qui l'errore?
non penso perchè se lo usi com'è dovrebbe usare il modello standard. Però 
non ne sono sicuro.

Guarda ho risolto.
Semplicemente ho inserito all'inizio l'inizializzazione del model con 0 zero
righe.
javax.swing.table.DefaultTableModel model = new
javax.swing.table.DefaultTableModel(0,4);
A questo punto funziona tutto.
L'unica cosa che mi mancherebbe è andare a mettere il focus sull'ultima riga
aggiunta.
Il focus lo setto con:
gettab().setRowSelectionInterval(rigaNuova,rigaNuova);
la riga effettivamente prende il focus ma non la tabella non esegue lo
scroll a quella riga nel caso in cui finisce fuori area visible.
che aggià fà???


 che aggià fà???
non lo so, ora purtroppo devo uscire. Buona fortuna
ciao


Spero che tu oggi sei ancora qui.
Devo assolutamente risolvere questa cosa.
Devo iscrivere la tabella in qualche ascoltatore di eventi?


 Devo iscrivere la tabella in qualche ascoltatore di eventi?
che operazioni fai su questa tabella o i dati in essa contenuti?
che tipo di eventi hai?
ce l'hai fatta a posizionare la tabella alla cella selezionata?

 ce l'hai fatta a posizionare la tabella alla cella selezionata?
Sono riuscita a fare quasi tutto.Scrivo in tabella nel modo desiderato...
L'utente deve solo poter scrorrere la tabella.
L'unica cosa di cui ho bisogno è quella di posizionare il cursore e lo
scroll sull'ultima riga inserita (viene inserita automaticamente dal
programma e non dall'utente).
Posiziono facilmente la selezione sull'ultimo record, ma lo scroll non si
adegua e quindi ho una selezione fuori area visibile.
Dovrei dire a quel testone di scorrere.
Che evento devo segnalargli???


 Che evento devo segnalargli???
è il problema di ieri sera quindi.
Non sono sicuro ma credo tu debba agire sulla scorllPane, usando cose tipo 
setViewPortView, setViewPosition, getVisibleRect.
Prova a vedere qui se ti serve qualche idea.
http://groups.google.com/groups?q=table+setFocus+scroll+row+java&hl=it&lr=&ie=UTF-8&selm=8dp3fi%241ah4319%40SGI3651ef0.iddeo.es&rnum=1
Per quanto riguarda l'evento aggiungi il tableModelListener che ha come 
unico metodo tableChanged. Qui hai quindi l'evento TableModelEvent che ti 
restituisce la colonna cambiata, la prima e l'ultima riga cambiata. 

 restituisce la colonna cambiata, la prima e l'ultima riga cambiata.
Ho letto quella pagina (cacchio in spagnolo!!!) e ho trovato la parte di
codice che mi interessava. Nulla da fare. Non si posiziona su quella riga.
Ma possibile che sia io l'unica ad avere questo cavolo di problema.
Gli altri come caspiterina fanno???


 Gli altri come caspiterina fanno???
non lo so, davvero. mi spiace


Vabbč grazie lo stesso.
Usciamo ? :-)


 Usciamo ? :-)
ok ma basta jtree e jtable ok?

 ok ma basta jtree e jtable ok?
Ovvio.
Penso che ci siano argomenti piů interessanti.


 Penso che ci siano argomenti più interessanti.
stiamo sforando in un bell'ot non pensi?

galway wrote:

sei riuscita poi?

 sei riuscita poi?
Sono uscita piu che riuscita.
No, il problema č ancora irrisolto
