|
Java 2 Útikalauz programozóknak 5.0 | ||||||||
| ELŐZŐ TÍPUS KÖVETKEZŐ TÍPUS | MEGOSZTVA EGY LAPON | ||||||||
| ÖSSZEFOGLALÁS: Beágyazások | Mezők | Konstruktorok | Metódusok | RÉSZLETEK: Mezők | Konstruktorok | Metódusok | ||||||||
java.lang.Objectjava.awt.FocusTraversalPolicy
elte.java2_utikalauz5.gui.FokuszTeszt
Példaprogram a fókuszkezelés szemléltetésére. A felhasználói felület közepén egy szövegmező látható, ennek láthatóságát, engedélyezettségét és fókuszálhatóságát szabályozhatjuk a felette és mellette látható gombokkal (ezek feliratán az aktuális állapot is megjelenik). Ezen szövegmezőben naplózzuk a mező fókuszállapotának változása, valamint a globális fókuszváltozás figyelésének eredménye. Alul további hat nyomógomb látható, melyek egy saját megvalósítású fókuszléptetési körhöz tartoznak, amiből az Esc billentyű megnyomásával lehet kilépni. Feliratukon a fókuszléptetési körben elfoglalt helyük (sorszámuk, illetve külön jelöltük az első, utolsó és az alapértelmezett komponenst), valamint a fókuszléptetési kör tulajdonságai láthatóak (ezeket megnyomva a megfelelő tulajdonság megváltozik). A léptetés a gombokon látható sorszámok sorrendjében történik. A törlő gombra kattintva a központi szövegmező tartalma törlődik, valamint ezután egyik komponens sem marad fókuszált. A fókuszléptetési kör elejét, végét és alapértelmezett komponensét jelölő gombot megnyomva pedig a kör sorrendjének véletlenszerű összekeverését kérhetjük.
Érdemes a különböző állapotvezérlő gombok segítségével minden beállítható állapot esetén a szokásos (Tab) fókuszléptetés működését végigpróbálni. A kipróbálás során azt is észrevehetjük, hogy a többsoros szövegmezőben a fókuszváltáshoz a Ctrl módosítóbillenytűt is nyomva kell tartanunk, a Tab önmagában nem idéz elő fókuszváltást.
KeyboardFocusManager| Mezők | |
|---|---|
private Button |
engedélyezett
Szövegmező engedélyezettségét állító gomb |
private Button |
fókuszálható
Szövegmező fókuszálhatóságát állító gomb |
private Button |
látható
Szövegmező láthatóságát állító gomb |
private int[] |
sorrend
Saját fókuszléptetési kör sorrendje |
private TextArea |
szöveg
Eseménynaplózó szövegmező |
private Random |
véletlen
Új fókuszléptetési kör megkeveréséhez véletlenszámgenerátor |
| Konstruktorok | |
|---|---|
private |
FokuszTeszt(Container felület)
GUI-t felépítő konstruktor. |
| Metódusok | |
|---|---|
void |
actionPerformed(ActionEvent esemény)
Nyomógomb megnyomásakor művelet elvégzése. |
static void |
felépít(Container felület,
String[] argumentumok)
A grafikus felhasználói felület felépítése |
void |
focusGained(FocusEvent fókuszesemény)
Központi szövegmező fókusz megszerzésének figyelése. |
void |
focusLost(FocusEvent fókuszesemény)
Központi szövegmező fókusz elvesztésének figyelése. |
private void |
fókuszkör(Container konténer,
boolean új)
Fókuszléptetési kör gombjainak feliratozása, igény esetén összekeverése. |
Component |
getComponentAfter(Container konténer,
Component komponens)
Fókuszléptetési kör rákövetkező komponensének lekérdezése. |
Component |
getComponentBefore(Container konténer,
Component komponens)
Fókuszléptetési kör megelőző komponensének lekérdezése. |
Component |
getDefaultComponent(Container konténer)
Fókuszléptetési kör alapértelmezett komponensének lekérdezése. |
Component |
getFirstComponent(Container konténer)
Fókuszléptetési kör első komponensének lekérdezése. |
Component |
getLastComponent(Container konténer)
Fókuszléptetési kör utolsó komponensének lekérdezése. |
static void |
main(String[] argumentumok)
A tesztprogram indítása. |
void |
propertyChange(PropertyChangeEvent esemény)
A központi fókuszkezelő fókusztulajdonos jellemzője változásának figyelése. |
| java.awt.FocusTraversalPolicy osztálytól örökölt metódusok |
|---|
getInitialComponent |
| java.lang.Object osztálytól örökölt metódusok |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Mezők részletezése |
|---|
private Button látható
private Button fókuszálható
private Button engedélyezett
private TextArea szöveg
private int[] sorrend
private Random véletlen
| Konstruktorok részletezése |
|---|
private FokuszTeszt(Container felület)
felület - a felhasználói felületet tartalmazó konténer| Metódusok részletezése |
|---|
public void actionPerformed(ActionEvent esemény)
ActionListener interfész actionPerformed metódusátesemény - A gombnyomást reprezentáló eseményobjektum.
private void fókuszkör(Container konténer,
boolean új)
konténer - A gombokat tartalmazó konténer.új - Igaz értéke esetén új fókuszléptetési kör létrehozása.public Component getDefaultComponent(Container konténer)
FocusTraversalPolicy osztály getDefaultComponent metódusátkonténer - Az aktuális konténer.
public Component getFirstComponent(Container konténer)
FocusTraversalPolicy osztály getFirstComponent metódusátkonténer - Az aktuális konténer.
public Component getLastComponent(Container konténer)
FocusTraversalPolicy osztály getLastComponent metódusátkonténer - Az aktuális konténer.
public Component getComponentAfter(Container konténer,
Component komponens)
FocusTraversalPolicy osztály getComponentAfter metódusátkonténer - Az aktuális konténer.komponens - Az aktuálisan fókuszált komponens.
public Component getComponentBefore(Container konténer,
Component komponens)
FocusTraversalPolicy osztály getComponentBefore metódusátkonténer - Az aktuális konténer.komponens - Az aktuálisan fókuszált komponens.
public void focusGained(FocusEvent fókuszesemény)
FocusListener interfész focusGained metódusátfókuszesemény - A fókusz eseményobjektum.public void focusLost(FocusEvent fókuszesemény)
FocusListener interfész focusLost metódusátfókuszesemény - A fókusz eseményobjektum.public void propertyChange(PropertyChangeEvent esemény)
PropertyChangeListener interfész propertyChange metódusátesemény - A változást tartalmazó eseményobjektum.
public static void felépít(Container felület,
String[] argumentumok)
felület - A felhasználói felületet tartalmazó konténer.argumentumok - Az indításkor megadott paraméterek.public static void main(String[] argumentumok)
argumentumok - Az indításkor megadott paraméterek.
|
Java 2 Útikalauz programozóknak 5.0 | ||||||||
| ELŐZŐ TÍPUS KÖVETKEZŐ TÍPUS | MEGOSZTVA EGY LAPON | ||||||||
| ÖSSZEFOGLALÁS: Beágyazások | Mezők | Konstruktorok | Metódusok | RÉSZLETEK: Mezők | Konstruktorok | Metódusok | ||||||||