Java - desktopové aplikácie

Z Kiwiki
Verzia z 22:55, 19. február 2011, ktorú vytvoril Juraj (diskusia | príspevky) (Vytvorená stránka „{{Navigacne menu - java}} V Jave môžeme vyvíjať desktopové aplikácie, ktoré sú nezávislé na platforme (Windows, Linux, Mac OS) a na týchto platformách majú je…“)
(rozdiel) ← Staršia verzia | Aktuálna úprava (rozdiel) | Novšia verzia → (rozdiel)
Skočit na navigaci Skočit na vyhledávání

V Jave môžeme vyvíjať desktopové aplikácie, ktoré sú nezávislé na platforme (Windows, Linux, Mac OS) a na týchto platformách majú jednotnú vizuálnu podobu. Toto zabezpečuje knižnica SWING.

Knižnica SWING je čsťou základného balíka tried (Java Foundation Classes - JFC) ktoré poskytuje grafické používateľské rozhranie. V knižnici SWING jednotlivé triedy reprezentujú vizuálne komponeny a názvy týhto tried začínajú písmenom 'J', ako napríklad JButton, JLabel, a JSlider. Knižnica SWING obsahuje viac ako 250 tried a rozhraní.

Štruktúra tried v knižnici SWING

Trieda JComponent je priamym potomkom triedy Container, čo je bázová trieda včšiny tried knižnice SWING. Na nasledujúcom obrázku [1] je naznačená hierarchia tried v knižnici SWING

Hierarchia tried v knižnici SWING

Pri tvorbe aplikácií s komponentami SWING budeme pracovať vo vývojom prostedí NetBeans, ktoré nám poskytuje vizálny návrhár aplikácie. Pri tvorbe nového projektu v prostredí NetBeans zvolíme 'Java Application' a následne do prázdneho proektu vložíme 'JFrame Form', čiže prázdne formulárové okno. Na nasledujúcom obrázku je zobrazené prázdne okno (JFrame) s paletou SWING komponentov, ktoré môžeme do aplikácie vložiť.

Prázdny formulár 'JFrame Form'

V nasledujúcom texte si krátko opíšeme niektoré komponenty knižnice SWING.

JLabel

Slúži na zobrazenie jednoduchého textu bez možnosti editácie. Dôležité vlastnosti:

Vlastnoť Opis
text textový obsah.
foreground farba textu
background farba pozadia

Dôležité metódy:

Metóda Opis
setText(String text) nastaví nový textový obsah komponentu
setSize(int sirka, int vyska) nastaví rozmery objektu
setVisible(boolean v) nastaví viditeľnosť objektu
setIcon(Icon ikona) nastaví ikonu, ktorá sa zobrazí spolu s textom
setForeground(Color c) nastaví farbu textu na farbu c
setBackground(Color c) nastaví farbu pozadia na farbu c

JButton

Trieda JButton predstavuje tlačidlo.

Dôležité vlastnosti:

Vlastnoť Opis
text text umiestnený v tlačidle
foreground farba textu
background farba pozadia tlačidla


Dôležité metódy:

Metóda Opis
setText(String text) nastaví nový textový obsah komponentu
setSize(int sirka, int vyska) nastaví rozmery objektu

JPanel

Predstavuje plochu s definovanou šírkou a výškou. Použitie tohto komponentu môže byť na vizuálne oddelenie častí aplikície.

Dôležité vlastnosti:

Vlastnoť Opis
border štýl a farba rámiku panelu
background farba pozadia panelu

Dôležité metódy:

Metóda Opis
getGraphics() vráti grafický kontext objektu ako objekt typu java.awt.Graphics
setSize(int sirka, int vyska) nastaví rozmery objektu

JSlider

Komponent typu 'bežec' alebo 'posubník'. Slúži na výber celočíselnej hodnoty v definovanom rozmedzí.

Dôležité vlastnosti:

Vlastnoť Opis
minimum definuje minimálnu hodnotu (najviac vľavo)
maximum definuje maximálnu hodnotu (najviac vpravo)
value hodnota ukazovaeľa na posuvníku

Dôležité metódy:

Metóda Opis
setMinimum(int min) nastaví dolnú hranicu hodnoty posuvníka na min
setMaximum(int max) nastaví hornú hranicu hodnoty posuvníka na max
getValue() Vráti hodnotu na ktorú ukazuje ukazovateľ posuvníka
setValue(int hodnota) nastaví hodnotu na ktorú (hodnota) bude ukazovať ukazovateľ posuvníka
setMajorTickSpacing(int n) Nastaví vzdialenosť medzi hlavnými čiarami slúžiacimi ako vizuálna pomôcka pri zobrazení
setMinorTickSpacing(int n) Nastaví vzdialenosť medzi pomocnými čiarami slúžiacimi ako vizuálna pomôcka pri zobrazení

JCheckBox

Komponenta JCheckBox predstavuje zašktávacie políčko, ktoré nesie informáciu označené/neozačené.

Dôležité vlastnosti:

Vlastnoť Opis
text text, ktorý sa zobrazí pri zaškrtávacom políčku
selected informácia o tom, či je políčko označené (true) alebo neoznačené (false)

Dôležité metódy:

Metóda Opis
isSelected() vráti hodnotu vlastnosti selected
setText(String text) nastaví popisku pri zašktávacom políčku

Obsluha udalostí

Nasledujúci obrázok ilustruje spôsob akým funguje vzájomná interakcia medzi používateľom a programom používajúcim knižnicu SWING.

Interakcia medzi vonkajšími udalosťami a knižnicou SWING
  • od používateľa prichádzajú žiadosti pre spracovanie udalostí ako napríklad stlačenie klávesy, kliknutie myšou, ...
  • v aplikácii sú zaregistrované špeciálne metódy (špióni -listeners), ktorí dokážu zachytiť tieto požiadavky
  • kód v týchto metódach spúšta iné metódy, ktoré môžu interagovať s inými prvkami aplikácie (podľa povahy požiadavku)
  • po spravocaní všetkcýh akcií sa výsledok prejaví ako odozva aplikácie (klinutie na tlačítko -> otvorenie nového formulára)

Obsluha udalostí podrobnejšie

Ako objekt knižnice SWING môže zachytiť rôzne udalosti. Výber z udalosti, ktoré môžeme zachytiť:

actionPerformed(ActionEvent e) Akcia sa vykoná pri zatlačení a pustení tlačidla myši. Je to základná meóda rozhrania ActionListener.
KeyPressed(KeyEvent evt) Akcia sa vykoná pri zatlačení klávesy (tlačidlo musí mať fokus)
KeyReleased(KeyEvent evt) Akcia sa vykoná pri uvoľnení klávesy (tlačidlo musí mať fokus)
KeyTyped(KeyEvent evt) Akcia sa vykoná pri zatlačení a uveľnení klávesy (tlačidlo musí mať fokus)
MouseClicked(MouseEvent evt) Akcia sa vykoná pri zatlačení a pustení tlačidla myši
MousePressed(MouseEvent evt) Akcia sa vykoná pri zatlačení tlačidla myši
MouseReleased(MouseEvent evt) Akcia sa vykoná pri pustení tlačidla myši
FocusGained(FocusEvent evt) Akcia sa vykoná pri získaní fokusu
FocusLost(FocusEvent evt) Akcia sa vykoná pri strate fokusu

Zachytávanie udalostí môžeme definovať ľubovoľnému objektu z knižnice SWING. V prostedí NetBeans na to slúži editor vlastností (Properties), záložka 'Events':

Netbeans - Editor vlastností


Príklad:

Zoberme si obejtk typy JButton. Po kliknutí na talčidlo, objekt vygeneruje základnú udalosť ActionPerformed, ktorá sa následne zavolá metóda obsluhy udalosti.

Generovanie a obsluha udalostí

Zdroje a odkazy