Java 2 Útikalauz programozóknak 5.0

elte.java2_utikalauz5.gui
FokuszTeszt osztály

java.lang.Object
  extended by java.awt.FocusTraversalPolicy
      extended by elte.java2_utikalauz5.gui.FokuszTeszt
Megvalósított interfészek:
ActionListener, FocusListener, PropertyChangeListener, EventListener

class FokuszTeszt
extends FocusTraversalPolicy
implements PropertyChangeListener, FocusListener, ActionListener

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.

Mióta:
Java 2 Útikalauz programozóknak 5.0
Lásd még:
KeyboardFocusManager
Forrásfájl:
FokuszTeszt.java
Letöltés:
FokuszTeszt.jar

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

látható

private Button látható
Szövegmező láthatóságát állító gomb


fókuszálható

private Button fókuszálható
Szövegmező fókuszálhatóságát állító gomb


engedélyezett

private Button engedélyezett
Szövegmező engedélyezettségét állító gomb


szöveg

private TextArea szöveg
Eseménynaplózó szövegmező


sorrend

private int[] sorrend
Saját fókuszléptetési kör sorrendje


véletlen

private Random véletlen
Új fókuszléptetési kör megkeveréséhez véletlenszámgenerátor

Konstruktorok részletezése

FokuszTeszt

private FokuszTeszt(Container felület)
GUI-t felépítő konstruktor.

Paraméterek:
felület - a felhasználói felületet tartalmazó konténer
Metódusok részletezése

actionPerformed

public void actionPerformed(ActionEvent esemény)
Nyomógomb megnyomásakor művelet elvégzése.

Megvalósítja:
ActionListener interfész actionPerformed metódusát
Paraméterek:
esemény - A gombnyomást reprezentáló eseményobjektum.

fókuszkör

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.

Paraméterek:
konténer - A gombokat tartalmazó konténer.
új - Igaz értéke esetén új fókuszléptetési kör létrehozása.

getDefaultComponent

public Component getDefaultComponent(Container konténer)
Fókuszléptetési kör alapértelmezett komponensének lekérdezése.

Megvalósítja:
FocusTraversalPolicy osztály getDefaultComponent metódusát
Paraméterek:
konténer - Az aktuális konténer.
Visszaadott érték:
A fókuszléptetési kör alapértelmezett komponense.

getFirstComponent

public Component getFirstComponent(Container konténer)
Fókuszléptetési kör első komponensének lekérdezése.

Megvalósítja:
FocusTraversalPolicy osztály getFirstComponent metódusát
Paraméterek:
konténer - Az aktuális konténer.
Visszaadott érték:
A fókuszléptetési kör első komponense.

getLastComponent

public Component getLastComponent(Container konténer)
Fókuszléptetési kör utolsó komponensének lekérdezése.

Megvalósítja:
FocusTraversalPolicy osztály getLastComponent metódusát
Paraméterek:
konténer - Az aktuális konténer.
Visszaadott érték:
A fókuszléptetési kör utolsó komponense.

getComponentAfter

public Component getComponentAfter(Container konténer,
                                   Component komponens)
Fókuszléptetési kör rákövetkező komponensének lekérdezése.

Megvalósítja:
FocusTraversalPolicy osztály getComponentAfter metódusát
Paraméterek:
konténer - Az aktuális konténer.
komponens - Az aktuálisan fókuszált komponens.
Visszaadott érték:
A fókuszléptetési kör alapján a következő komponens.

getComponentBefore

public Component getComponentBefore(Container konténer,
                                    Component komponens)
Fókuszléptetési kör megelőző komponensének lekérdezése.

Megvalósítja:
FocusTraversalPolicy osztály getComponentBefore metódusát
Paraméterek:
konténer - Az aktuális konténer.
komponens - Az aktuálisan fókuszált komponens.
Visszaadott érték:
A fókuszléptetési kör alapján a megelőző komponens.

focusGained

public void focusGained(FocusEvent fókuszesemény)
Központi szövegmező fókusz megszerzésének figyelése.

Megvalósítja:
FocusListener interfész focusGained metódusát
Paraméterek:
fókuszesemény - A fókusz eseményobjektum.

focusLost

public void focusLost(FocusEvent fókuszesemény)
Központi szövegmező fókusz elvesztésének figyelése.

Megvalósítja:
FocusListener interfész focusLost metódusát
Paraméterek:
fókuszesemény - A fókusz eseményobjektum.

propertyChange

public void propertyChange(PropertyChangeEvent esemény)
A központi fókuszkezelő fókusztulajdonos jellemzője változásának figyelése.

Megvalósítja:
PropertyChangeListener interfész propertyChange metódusát
Paraméterek:
esemény - A változást tartalmazó eseményobjektum.

felépít

public static void felépít(Container felület,
                           String[] argumentumok)
A grafikus felhasználói felület felépítése

Paraméterek:
felület - A felhasználói felületet tartalmazó konténer.
argumentumok - Az indításkor megadott paraméterek.

main

public static void main(String[] argumentumok)
A tesztprogram indítása.

Paraméterek:
argumentumok - Az indításkor megadott paraméterek.

Java 2 Útikalauz programozóknak 5.0