Ciao a tutti,
ho un piccolo problema e non riesco a capire il perché si verifica.
Ho implementato un completatore automatico su JTextField prendendo spunto da un esempio su Internet e l'ho reso adatto ai miei scopi.
Detto questo prendo i dati da un DB li carico in una JList appena faccio il doppio click si scatena l'evento di completamento automatico.
Il problema è che non appena clicco e viene completato il JTextField l'ultima lettera non viene stampata all'interno dello stesso.
Ad esempio:
ho "ROSSI Fabio" e viene copiato nella JTextField "ROSSI Fabi"
Questo è il pezzo di codice che implementa la copiatura.
Il selectedSuggestion contiene la parte di stringa non scritta nel Field(ad esempio se ho scritto "RO" questa conterrà tutto il resto selectedSuggestion="SSI Fabio") ed effettivamente andando di debugging ho visto che contiene quel valore ed anche l'ultima lettera.codice:if (list.getSelectedValue() != null) { try { String selectedSuggestion = ((String) list.getSelectedValue()).substring(subWord.length()); textarea.getDocument().insertString(insertionPosition, selectedSuggestion, null); hide(); return true; } catch (BadLocationException e1) { e1.printStackTrace(); } hideSuggestion(); } return false;
insertionPosition viene calcolata precedentemente ed in maniera corretta e nel nostro caso varrebbe "2".
Sembra tutto giusto ma non riesco a capire questo piccolo malfunzionamento.
Grazie a tutti.
Ciao.