|
Technológie JavaTM - cvičenia Cvičenie 9 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Obsah
Otázky Kontakt Download Dokumentácia Zadania HyperNews |
Téma
Grafické používateľské rozhranie (Graphical User Interface) predstavuje komunikáciu medzi aplikáciou a používateľom. Slúži na vstup informácií špecifikovaných používateľom do aplikácie a zároveň prezentuje informácie získané počas behu aplikácie. Práve toto rozhrania určuje do istej miery aj atraktívnosť produktu - aplikácie.
Jazyk Java ponúka množstvo tried na tvorbu grafického rozhrania. Základom sú balíky:
Triedy AWT sú implementované v balíkoch Udalosť - definuje nejakú zmenu v systéme. Na túto udalosť by mala aplikácia patrične zareagovať. Takouto udalosťou môže byť napríklad stlačenie tlačidla, vybratie prvku zo zoznamu a podobne.
Nasledujúca tabuľka popisuje niekoľko typov udalostí, triedy objektov charakterizujúce danú udalosť a rozhrania popisujúce metódy reakcie na udalosť.
Príklad pod textom prezentuje reakciu na udalosť - stlačenie myši.
Komponent - predstavuje grafický prvok - tlačidlo, nadpis, panel (rodičovská trieda Component, JComponent).
Hierarchické zoskupovanie komponentov má význam pri rozmiestňovaní komponentov v rámci formulára.
Koreňom je vždy kontajner najvrchnejšej úrovne (JFrame, JDialog, JApplet).
Kontajnery najvrchnejšej úrovne môžu obsahovať menu. Na pridávanie komponentu do kontajnera sa používa metóda
Nasledujúci príklad prezentuje použitie knižnice SWING, hierarchiu komponentov.
V tomto programe je nasledujúca hierarchia komponentov: Hlavné okno aplikácie (
Komponenty knižnice SWING
Rozmiestňovanie komponentov - layout manažéry
Okrem vloženia komponentov do kontajneru (napr. Panel) - hierarchické vrstvenie - je nutné určiť rozmiestnenie týchto komponentov vrámci
kontajneru - layout. setLayout(layout); Border Layout Border Layout má päť oblastí - NORTH (sever-hore), WEST (západ-vľavo), CENTER (stred), EAST (východ-vľavo), SOUTH (juh-dole). Preferovaná na veľkosť je stredná časť. Ostatným oblastiam je pridelený len nutný priestor. Border Layout je predvolený layout pre contentPane. Použitie Nastavenie layout-u pre kontajner: setLayout(new BorderLayout());resp. je možné špecifikovať aj medzery medzi oblasťami. setLayout(new BorderLayout(horizontalnaMedzera, vertikalnaMedzera));Pri pridávaní komponentu do kontajnera je nutné špecifikovať oblasť. add(component, BorderLayout.NORTH); add(component, BorderLayout.WEST); add(component, BorderLayout.CENTER); add(component, BorderLayout.EAST); add(component, BorderLayout.SOUTH);Zdrojový text AWT appletu BorderLayoutAWTApplet.java.
Zdrojový text SWING appletu a zároveň aplikácie BorderLayoutTest.java. Flow Layout
Flow Layout je jeden z najjednoduchších layout-ov.
Flow Layout je predvolený layout pre Použitie Nastavenie layout-u pre kontajner: setLayout(new FlowLayout());resp. je možné špecifikovať zarovananie aj medzery medzi oblasťami. setLayout(new FlowLayout(zarovnanie,horizontalnaMedzera, vertikalnaMedzera));Pridávanie komponentu do kontajnera: add(component);Zdrojový text AWT appletu FlowLayoutAWTApplet.java.
Zdrojový text SWING appletu a zároveň aplikácie FlowLayoutTest.java. Grid Layout Grid Layout slúži na umiestňovanie komponentov do buniek v riadkoch a stĺpcoch - mriežka. Veľkosť každej bunky je rovnaká - prispôsobí sa najväčšiemu komponentu. Použitie Nastavenie layout-u pre kontajner: setLayout(new GridLayout(pocetRiadkov, pocetStlpcov));resp. je možné špecifikovať zarovananie aj medzery medzi oblasťami. setLayout(new GridLayout(pocetRiadkov, pocetStlpcov, horizontalnaMedzera, vertikalnaMedzera));Pridávanie komponentu do kontajnera: add(component);Zdrojový text AWT appletu GridLayoutAWTApplet.java.
Zdrojový text SWING appletu a zároveň aplikácie GridLayoutTest.java. Grid Bag Layout Grid Bag Layout je najkomplexnejším a zároveň najzložitejšie použiteľným layout-om. Tento layout je pomerne flexibilný a umožňuje dobré rozmiestňovanie komponentov. Bližšie Java Tutoriál. Na prácu s týmto layout-om odporúčam nejaké vhodné grafické vývojové prostredie.
Zdrojový text AWT appletu GridBagLayoutAWTApplet.java.
Zdrojový text SWING appletu a zároveň aplikácie GridBagLayoutTest.java. Box Layout
Box Layout slúži na umiestňovanie komponentov v riadku zľava doprava alebo v stĺpci zhora nadol.
Tento layout je pomerne flexibilný a umožňuje dobré rozmiestňovanie komponentov, je definovaný v balíku Použitie Nastavenie layout-u pre kontajner: setLayout(new BoxLayout(pocetRiadkov, pocetStlpcov));resp. je možné špecifikovať zarovnanie aj medzery medzi oblasťami. setLayout(new BoxLayout(pocetRiadkov, pocetStlpcov, horizontalnaMedzera, vertikalnaMedzera));Pridávanie komponentu do kontajnera: add(component);Zdrojový text SWING appletu a zároveň aplikácie BoxLayoutTest.java. Odkaz na applet - nutný Java 2 plugin z dôvodu použitia knižnice SWING - BoxLayout.html. Absolútne pozície Okrem použitia layout-ov je možné špecifikovať pre komponenty aj absolútne pozície. Použitie Zrušenie nastaveného layout-u pre kontajner: setLayout(null);Pridávanie komponentu do kontajnera: add(component); component.setBounds(lavyHornyRohX,lavyHornyRohY,sirka,vyska);Zdrojový text AWT appletu NoLayoutAWTApplet.java.
Zdrojový text SWING appletu a zároveň aplikácie NoLayoutTest.java. Zhrnutie
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||