|
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énerMetó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 |