Modely v Javě
V GUI Javy je často využívaným postupem práce s modelem. Model představuje implementaci nějakého rozhraní jinou (např. grafickou) třídou. Přes toto rozhraní přistupuje grafická třída ke svým metodám. Použití modelů umožňuje důsledně oddělit grafický návrh aplikace od funkční části.Modely se používají nejen pro práci s grafikou, setkáme se s nimi i při manipulacích s běžnými komponentami. Koncept rozhraní v Javě je tvořen třemi skupinami rozhraní:
Základní rozhraní pro práci s modely představují např. TableModel, ListModel, ... Abstraktní implementace (implementace rozhraní abstraktní třídou) používáme v případech, kdy chceme předefinovávat funkcionalitu rozhraní (např. AbstractTableModel), výchozí implementaci rozhraní (implementace rozhraní neabstraktní třídou) v případech, kdy funkcionalitu rozhraní neměníme např. DefaultTableModel). Problematika modelů v Javě jde nad rámec základního kurzu, proto se o ní zmiňujeme pouze velmi stručně.
Modely umožňují také pracovat s událostmi. Pokud dojde k jakékoliv změně v datech modelu, je tato informace oznámena všem zaregistrovaným posluchačům. Modely se používají často při práci s následujícími komponentami:
Uveďme pro úplnost, že s těmito komponentami můžeme pracovat i klasicky, tj. bez použití modelů.
Přehled nejpoužívanějších komponent
V této části se seznámíme s nejčastěji používanými vizuálními komponentami a jejich událostmi. Jsou potomky třídy javax.Swing.*, kromě této třídy musíme připojit i třídu java.awt.event.*. Název komponenty začínající na písmeno J je současně i názvem třídy, kterou komponenta představuje. Zopakujme, že starší komponenty z rozhraní AWT mají podobné názvy, pouze nezačínají písmenkem J. Společnou vlastností všech komponent popsaných v kapitolách je to, že nemohou být zobrazeny samostatně. Není možné vytvořitprogram, který zobrazí pouze jednu komponentu (např. JLabel) bez hlavního okna.
JLabel
Tato komponenta je používána jako popis. Neobsahuje -li žádný text, je neviditelná. Komponentě lze nastavit barvu popředí nebo barvu pozadí. Standardně je v ní text zarovnán směrem vlevo. Většinou je používána jako komponenta statická, kdy zpravidla neošetřujeme jeho události, ale pouze s ním popisujeme jiné komponenty. Existují tři základní konstruktory třídy JLabel.JLabel();
JLabel(String text);
JLabel (String text, JLabel alignment);
Zarovnání lze ovlivnit třemi konstantami:
JLabel.LEFT
Jlabel.RIGHT
JLabel.CENTER
JLabel.LEADING
Jlabel.TRAILING.
Přehled nejpoužívanějších metod spolu se stručným popisem jsou umístěny v následující tabulce.
Metoda | Popis |
setText() | Nastavení textu zobrazovaného labelem |
getText() | Získání textu zobrazovaného labelem. |
setHorizontalAlignment() | Nastavení horizontálního zarovnání textu v labelu. |
getHorizontalAlignment() | Získání horizontálního zarovnání textu v labelu. |
setVerticalAlignment() | Nastavení vertikálního zarovnání textu v labelu. |
getVerticalAlignment() | Získání vertikálního zarovnání textu v labelu. |
Praktické příklady uvádět nebudeme, použití JLabelu je triviální. Navíc jsme si práci s touto komponentou v předchozím textu již vyzkoušeli.
Autor: Filip Koval