Ho implementato una sottoclasse DocumentFilter
e quando digito il testo nello JTextComponent
, viene invocato il metodo replace()
del filtro e non insertString()
(che non viene mai richiamato). Qualche idea del perché?DocumentFilter: Perché replace() è invocato e non insertString()?
5
A
risposta
6
Il metodo insertString(...)
viene richiamato quando si aggiorna il documento direttamente, utilizzando il metodo Document.insertString (...).
Il metodo replace(...)
viene richiamato quando il documento viene aggiornato dai metodi della vista (ad esempio il campo jText) quando l'utente immette il testo o l'utente richiama azioni (taglia, incolla) associate al campo di testo.
Suppongo che sia più facile sostituire sempre e quindi lasciare che la logica di sostituzione controlli per vedere se è necessario rimuovere/inserire.
Cosa intendi per "perché è così"? – Invictus