Sinceramente a me piace più la seconda però ho visto anche l'esempio e nella classe DigitsOnlyPlainDocument ho capito poco che poi a quando ho capito è la classe che non permette la scritta di lettere nel mio caso.
Sinceramente a me piace più la seconda però ho visto anche l'esempio e nella classe DigitsOnlyPlainDocument ho capito poco che poi a quando ho capito è la classe che non permette la scritta di lettere nel mio caso.
Sì, cosa non ti è chiaro?Originariamente inviato da Nike00
ho capito poco che poi a quando ho capito è la classe che non permette la scritta di lettere nel mio caso.
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
Se potresti spiegarmi più o meno come funziona così lo capiscocodice:if (str == null) return; StringBuffer sb = new StringBuffer(str.length()); for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); // Inserts the character into the buffer // ONLY if it is a digit. if (Character.isDigit(c)) { sb.append(c); } } super.insertString(offs, sb.toString(), a);![]()
insertString() è il metodo di un Document che serve per inserire del testo nel documento. Chi invoca tale metodo può essere:Originariamente inviato da Nike00
Se potresti spiegarmi più o meno come funziona così lo capisco
a) Il programmatore (tu) per inserire programmaticamente qualcosa nel documento.
b) Il framework a seguito di input dalla tastiera o da una operazione di paste ("incolla").
Ma non ha importa ora chi invoca il metodo. Se viene chiesto di inserire del testo, tu lo puoi filtrare qui dentro.
La cosa più semplice e pratica da fare è quella di "saltare" (meglio dire: ignorare) i caratteri che non accetti e lasciar "passare" quelli che invece accetti.
Semplicemente fa una iterazione sui singoli caratteri della stringa, se il carattere è un digit, lo aggiunge al StringBuffer, altrimenti è ovvio lo ignora.
Alla fine invoca insertString() della superclasse che "sa" come aggiungere la stringa nelle sue strutture dati (che a te non interessa sapere come/dove sono).
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
Grazie ho capito e ho subito risolto nel mio programma![]()
![]()