Java - desktopové aplikácie
Základy informatiky - jazyk Java
Úvod do programovania v jazyku Java
Java - objektovo orientovaný prístup
Vzorové príklady:
Java - implementácia numerických algoritmov
Java - triedy geometrických tvarov
Pokročilé témy:
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í.
Obsah
Š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
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ť.
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.
- 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':
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.