Originariamente inviato da cutoff
Ciao,

ho una JTable con celle editabili.Ora però se faccio "doppio click" su una cella,in questa mi compare giustamente il cursore (|)e posso
inserire tranquillamente un valore;se invece faccio solo il "click",
la cella selezionata diviene ovviamente editabile e ci posso inserire il valore, solo che non mi compare il cursore(|).Questo fatto mi comporta che il valore inserito da me,non viene "preso" dalla tabella,infatti se controllo con il metodo getValueAT(..),o con il metodo getDataVector(..), il valore non è presente!!, anche se a video mi viene mostrato.E' come se cliccando una sola volta su una cella, "perdessi" il riferimento ad essa, pur rimanendo il focus
attivo sulla stessa!!Spero di essermi spiegato.

Cosa ne pensate?

Grazie

Nicola
Non ti spieghi la cosa perchè non sai come funziona la JTable. Ad ogni cella dell JTable (in realtà ad ogni colonna di celle) è associato un Renderer ed un Editor. Sono entrambi normal componenti swing,il renderer è responsabile della visualizzazione della cella "a riposo". l'editor della visualizzazione in fase di editing di un valore. Ora l'editor per default è un JTextField e si attiva al doppio click sulla cella, quando fai doppio click la JTable disegna la JtextField sopra la cella dandoti l'impressione di editarla ma non è così, quello su cui stai agendo è l'editor. Quando premi invio o l'editor perde il focus effettua una opzioanle validazione del tipo di dto inserito e poi lo passa al Model della JTable in modo che essa lo visulaizzi nella cella corrispondente.Questo comportamneto implica che finchè la cella non perde il focus o non premi invio, i dati non sono di fatto stati "presi" come dici tu, dalla Jtable.Ciao