|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jan 2004
Messaggi: 173
|
[Java] JTable e multithread
Ho creato un modello di una JTable estendendo AbstractTableModel. Nel modello è presente una LinkedList, che contiene gli elementi da visualizzare nella JTable.
Tale modello dispone dei metodi add() e remove() per aggiungere ed eliminare elementi dal modello. Il problema si presenta nel momento in cui, ad aggiungere o ad eliminare un elemento della LinkedList, sia un thread differente dal thread che gestisce la gui. Infatti si verifica che in alcuni casi il thread della gui richiami getValueAt() di abstractTableModel, mentre un altro thread elimina un elemento dalla LinkedList, sollevando un'eccezione. Come è possibile risolvere questo problema? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
E' un suggerimento un po' alla pescatore ma prova a rimpiazzare la tua lista con ConcurrentLinkedQueue.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#3 | |
|
Member
Iscritto dal: Jan 2004
Messaggi: 173
|
Quote:
Tale collezione non consente di avere accesso ad un suo elemento attraverso un indice. Di conseguenza come faccio nel metodo getValueAt() a risalire all'elemento da visualizzare? |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Eh eh eh, bella domanda.
Puoi provare con Vector o una lista "normale" passata per il metodo Collections.synchronizedList(laLista). Il problema è che questo tipo di strutture dati sono non gestiscono la modifica ai dati in concorso con l'iteratore. L'eccezione che ti ritrovi è probabilmente dovuta al fatto che mentre un thread scorre i dati con un interatore un altro thread o lo stesso thread eliminano un elemento dalla lista.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#5 | |
|
Member
Iscritto dal: Jan 2004
Messaggi: 173
|
Quote:
Sto provando con ArrayList, sembra funzionare. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:12.




















