Változás követés szöveges elemek java, java blog csak mintegy
Néha szükség van, hogy frissítse a részét a felhasználói felület, ha a felhasználó szerkeszti a szöveget, anélkül, hogy megvárná, amíg a felhasználó rákattint a gombra. Az alábbiakban egy egyszerű példát. Mi megjelenítéséhez három szöveges mezők piros, kék és zöld komponenseket. Amikor megváltoztatja a tartalmát a szöveges mezők, frissítenie kell a színt. Ábra. Az 1. ábra a futó alkalmazás kódját, amely bemutatásra kerül a végén.

Először is vegyük figyelembe, hogy a pálya billentyűk a billentyűzeten - ez nem teljesen megfelelő ötlet. Az a tény, hogy egyes billentyűk (pl nyíl billentyűk) nem módosíthatja a szöveget.
A szöveg lehet frissíteni eredményeként végrehajtott műveleteket az egérrel (például használja a középső egérgombbal beszúrni a rendszerben tárolt adatok X11). Ehelyett meg kell „kérni” a dokumentum (és nem a szöveg komponens), hogy jelezze, ha változás történik az adatok. Ez szükségessé teszi a hallgató dokumentum (dokumentum hallgató):
textField. getDocument (). addDocumentListener (hallgató);
Ha a szöveg változott, hívja az alábbi módszerek valamelyikét:
void insertUpdate (DocumentEvent esemény)
void removeUpdate (DocumentEvent esemény)
void changeUpdate (DocumentEvent esemény)
Az első két módszer nevezzük, amikor behelyezi vagy karakter törléséhez. A harmadik módszer a szöveges mezők nem hívják egyáltalán. Bonyolultabb típusú dokumentumokat lehet hivatkozni néhány más változás, mint például változások a formázást.
Sajnos nincs mód jelenteni változás a szövegben egyetlen visszahívás - a szabály, akkor nem kell aggódnia, hogy hogyan változik. Sőt, ebben az esetben nem is egy különleges besorolású. Így a hallgató dokumentum végre kell hajtania mind a három módszer. Az alábbiakban bemutatjuk, hogy mit tesznek a program:
SetColor () metódus GetText módszer szerezni húrok a felhasználó által bevitt egy adott időpontban, a szöveges mezők és a színes beállítást.
A program egyik korlátozás. A felhasználó adja meg a szöveget a szövegmezőbe hibákkal (például „meshina” helyett a „gép”), vagy akár hagyja üresen. Amíg elkapjuk kivételek NumberFormatException. által generált parseInt. és egyszerűen nem frissíti a színt, ha egy bejegyzést a szöveges mező nem szám.