Newsgroup: it.comp.java
Titolo: [JTable] Problema

Allora ragazzi ho un problemino, uso una JTable per inserire dei valori
che poi vanno scritti in un DBase premendo un pulsante Salva.
Se scrivo su una riga e premo Salva senza prima aver premuto invio
succede che il testo appena scritto viene cancellato.
Allora ho provato con la classe Robot che nel momento in cui premo salva
mi simula la pressione del tasto invio sulla tabella, ma non funziona
perchè la riga si cancella prima, proprio nel momento in cui faccio il
click sul bottone. Qualcuno conosce un rimedio???
Grazie!!
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Ciao mi pare che sia un comportamento appastanza normale per jave.
Il fatto è che mentre scrivi il tuo dato l'editor non scrive 
immediatamente il nato nella jtable fin tanto che non avviene un 
ActionPerformed.
Fatti un editor di tabella tuo ed aggiungici i listeners di cui hai 
bisogno, dovrebbe funzionare.
/kiuma


in gravissimo ritardo questo dovrebbe fare al caso tuo:
nell'action performed del pulstante salva:
tabella.getCellEditor(riga, colonna).stopCellEditing();
oppure
tabella.getCellEditor().stopCellEditing();
non so se la seconda funziona per ogni cella o solo per quelle che hanno
il defaul editor oppure qualche altro caso che non conosco.
ciao
-- 
Seti@Home Java Applets
http://maruko.cjb.net/


uhm, se hai lo stesso editor per le celle direi che basti la seconda (ho
effettuato un rapido test).
in ogni caso proteggi la chiamata in un if:
if(tabella.isEditing()) {
	tabella.getCellEditor().stopCellEditing();
}
perche', a quanto pare, se non effettui nessuna operazione non viene
nemmeno creato l'editor e quindi NullPointerException


Non č poi un comportamento cosě sbagliato se scrivi e poi vai
direttamente sul bottone salva senza neanche dare all JTable un
segnale d'invio e di conferma del dato... altrimenti lei dovrebbe
farti un controllo su ogni tasto premuto e diventerebbe un disastro,
comunque l'imposizione al cliente e sempre quella di obbligarlo
all'invio... degustibus. Ciao Pietro

Non č poi un comportamento cosě sbagliato se scrivi e poi vai
non dico che sia sbagliato. faccio cosi' perche' il piu' delle volte gli
utenti si aspettano che succeda. poi e' indispensabile se nella jtable
hai un jcombobox. se non lo fai, la selezione del combo non viene
salvata fino a che la cella che lo contiene non perde il focus.


La JTable č una classe imperfetta e da parecchie rogne! Bisognerebbe
lavorarci su e rendela un pochino piů precisa.
L'alternativa č la JdbTable del JDataStore ma per applicazioni veloci ti
spari ad usarla! :-)
Ciao a presto. Pietro.



 Mi intrometto....
com'č il JDataStore?!? Un paio di righe d'impressioni, se non ti rubo troppo
tempo...
Grazie.

Nessun problema! E' sicuramente molto utile, coi dati puoi farci di
tutto e molte dell funzioni di gestione di una tabella: nuovo record,
cancella, modifica, refresh, annulla; sono già create dentro il codice.
Per applicazioni che devono gestirer un gran numero di record lo
consiglio vivamente.
Ho trovato però un pò di osticità nel farsi restituire i dati visto che
è molto pignolo sul tipo del record che stai richiedendo e se sbagli
lancia eccezioni a non finire.
Nel complesso sicuramente un commento positivo però! Ciao a presto!


 Nel complesso sicuramente un commento positivo però! Ciao a presto!
Grazie, sei stato molto gentile.