Úvod | 11 | |
1 | Grafické uživatelské rozhraní | 16 |
2 | Zobrazení a obsluha událostí | 18 |
2.1 | Jak se komponenta zobrazí | 18 |
2.1.1 | Použití Frame | 18 |
2.1.2 | Zobrazení prvku | 19 |
2.1.3 | Jiný způsob zobrazení základního okna | 22 |
2.1.4 | Zobrazení základního okna stylem JBuilderu | 23 |
2.2 | Princip reakce na události | 24 |
2.2.1 | Základní funkcionalita | 25 |
2.2.2 | Více zdrojů stejné události | 27 |
2.2.3 | Rozlišení stejných událostí popisem zdroje | 28 |
2.2.4 | Rozlišení stejných událostí objektem zdroje | 29 |
2.2.5 | Využití vnitřní třídy | 29 |
2.2.6 | Použití více vnitřních tříd – doporučený způsob | 31 |
2.2.7 | Použití anonymní vnitřní třídy | 32 |
2.2.8 | Použití anonymní vnitřní třídy ve stylu RAD | 34 |
2.2.9 | Využití jiné vnější třídy | 35 |
2.2.10 | Dva posluchači stejné události | 37 |
2.2.11 | Zrušení posluchače | 38 |
2.3 | Programové vyvolání události | 40 |
2.4 | Rozhraní posluchače má více metod | 44 |
2.4.1 | Použití prázdných metod | 45 |
2.4.2 | Použití adaptérů | 46 |
2.4.3 | Zaregistrování anonymního objektu | 47 |
2.4.4 | Adaptér a vnitřní třída | 48 |
2.4.5 | Adaptér a vnitřní anonymní třída | 49 |
3 | Akce společné pro všechny komponenty | 50 |
3.1 | Jak komponentu obarvíme | 50 |
3.1.1. | Základní informace o barvách | 50 |
3.1.2 | Základní barevné operace s komponentami | 51 |
3.1.3 | Použití vlastní barvy | 52 |
3.1.4 | Zjištění jednotlivých barevných složek | 53 |
3.2 | Jak komponentu popíšeme | 54 |
3.2.1 | Trocha typografické teorie na začátek | 54 |
3.2.2 | Fonty v Javě | 56 |
3.2.3 | Popis komponenty zvoleným fontem | 57 |
3.2.4 | Získání informací o použitém fontu | 59 |
3.2.6 | Vazba logických fontů na fyzické fonty | 60 |
3.2.7 | Odvozené fonty v rámci jedné rodiny písem | 60 |
3.2.8 | Přímé použití fyzických fontů | 61 |
3.3 | Velikost nebo poloha komponenty | 62 |
3.3.1 | Zjištění aktuální velikosti a polohy | 62 |
3.3.2 | Zjištění krajních velikostí | 65 |
3.3.3 | Změna krajních velikostí | 66 |
3.3.4 | Změna velikosti nebo polohy | 67 |
3.4 | Práce s kurzorem | 69 |
3.5 | Zpřístupnění komponenty | 70 |
3.6 | Viditelnost komponenty | 72 |
4 | Typy komponent a jejich základní události | 73 |
4.1 | Společné principy | 73 |
4.2 | Label – návěští | 75 |
4.3 | Button – tlačítko | 76 |
4.4 | Checkbox – zaškrtávací pole | 76 |
4.5 | CheckboxGroup | 78 |
4.6 | Choice – výběrový seznam | 80 |
4.7 | TextField – vstupní pole | 82 |
4.8 | Scrollbar – posuvník, šoupátko | 85 |
4.8.1 | Změna velikosti jezdce | 87 |
4.8.2 | Skokové změny polohy jezdce | 89 |
4.9 | List – seznam | 91 |
4.10 | TextArea | 93 |
4.11 | TextComponent | 96 |
4.12 | Menu | 98 |
4.12.1 | MenuBar | 99 |
4.12.2 | MenuItem | 100 |
4.12.3 | Menu | 100 |
4.12.4 | CheckboxMenuItem | 101 |
4.12.5 | Použití klávesových zkratek | 103 |
4.13 | Oddělení programu výpočtu od zobrazení výsledků | 104 |
4.13.1 | Oddělení pomocí Observable-Observer | 107 |
5 | Kontejnerové komponenty | 112 |
5.1 | Container | 112 |
5.2 | Window | 114 |
5.3 | Frame | 115 |
5.4 | Dialog | 119 |
5.5 | FileDialog | 122 |
5.6 | Panel | 125 |
5.7 | ScrollPane | 126 |
6 | Rozmísťování komponent | 129 |
6.1 | Aktualizace rozměru komponenty | 130 |
6.2 | FlowLayout | 131 |
6.3 | GridLayout | 133 |
6.4 | BorderLayout | 134 |
6.5 | CardLayout | 136 |
6.6 | GridBagLayout | 137 |
6.6.1 | Rozmístění komponent | 138 |
6.6.2 | Roztahování komponenty – fill | 143 |
6.6.3 | Zvětšení přirozené velikosti komponenty – ipad | 144 |
6.6.4 | Nastavení okrajů komponenty – insets | 144 |
6.6.5 | Umístění komponenty – anchor | 144 |
6.7 | Žádný manager | 145 |
6.8 | Použití panelů pro větší množství komponent | 146 |
7 | Podrobný přehled událostí | 151 |
7.1 | Přehled existujících událostí | 151 |
7.2 | Seznam komponent a jejich možných událostí | 152 |
7.3 | Přehled metod jednotlivých událostí | 153 |
7.4 | Předci používaných událostí | 154 |
7.5 | ActionListener a ActionEvent | 155 |
7.6 | AdjustmentListener a AdjustmentEvent | 155 |
7.7 | ComponentListener a ComponentEvent | 157 |
7.8 | ContainerListener a ContainerEvent | 158 |
7.9 | FocusListener a FocusEvent | 161 |
7.10 | ItemListener a ItemEvent | 164 |
7.11 | KeyListener a KeyEvent | 166 |
7.11.1 | Obsluha běžných kláves | 166 |
7.11.2 | Obsluha akčních kláves | 168 |
7.12 | MouseListener a MouseEvent | 170 |
7.12.1 | Základní funkčnost | 170 |
7.12.2 | Rozlišení tlačítek myši | 173 |
7.13 | MouseMotionListener a MouseEvent | 175 |
7.14 | TextListener a TextEvent | 177 |
7.15 | WindowListener a WindowEvent | 177 |
8 | Grafika | 181 |
8.1 | Souřadnicový systém | 183 |
8.2 | Grafická primitiva | 183 |
8.2.1 | Line – úsečka | 184 |
8.2.2 | Rect – obdélník | 184 |
8.2.3 | Oval – ovál, elipsa | 185 |
8.2.4 | Arc – kruhová výseč | 185 |
8.2.5 | Polygon a Polyline | 185 |
8.3 | Canvas a metoda paint() | 186 |
8.4 | Metody repaint() a update() | 190 |
8.5 | Další dovednosti | 194 |
8.5.1 | Barvy | 194 |
8.5.2 | Orámování a souřadnice | 195 |
8.5.3 | Kreslení pomocí myši a klávesnice | 197 |
8.5.4 | Ořezávání a XOR mód | 198 |
8.6 | Práce s textem a fonty | 200 |
8.6.1 | Metody pro výpis a umístění textu | 200 |
8.6.2 | Metrika fontu | 202 |
8.6.3 | Použití fyzických fontů | 205 |
8.7 | Obrázky | 206 |
8.7.1 | Natažení obrázku | 206 |
8.7.2 | Čekání na natažení obrázku | 209 |
8.7.3 | Monitorování natažení obrázku | 212 |
8.7.4 | Zobrazení obrázků | 216 |
8.7.5 | Programové vytvoření obrázku | 219 |
9 | Aplety | 222 |
9.1 | První aplet | 223 |
9.1.1 | Problémy | 225 |
9.1.2 | WWW prohlížeč versus appletviewer | 226 |
9.1.3 | Aplet bez HTML souboru | 227 |
9.2 | Životní cyklus apletu | 228 |
9.3 | Zobrazování vložených komponent a reakce na události | 231 |
9.4 | Popis apletu v HTML souboru | 233 |
9.5 | Zvláštnosti apletů | 235 |
9.5.1 | Lokalizace souborů | 235 |
9.5.2 | Zobrazení stavového řetězce | 235 |
9.5.3 | Zvětšení apletu | 238 |
9.5.4 | Přehrávání zvuků | 239 |
9.6 | Spuštění apletu jako aplikace | 242 |
10 | Jak na češtinu? | 245 |
10.1 | Problém češtiny | 245 |
10.1.1 | Podporovaná osmibitová kódování | 246 |
10.1.2 | Unicode | 247 |
10.1.3 | Kód UTF-8 | 249 |
10.2 | Čeština v programu | 251 |
10.2.1 | Přepínač encoding | 253 |
10.2.2 | Konverze pomocí native2ascii | 254 |
10.3 | Čeština na konzoli | 256 |
10.4 | Čeština v souborech | 259 |
10.4.1 | Akcenty při práci se třídou RandomAccessFile | 261 |
10.4.2 | Jiná možnost zápisu a čtení souboru v kódování UTF8 | 262 |
10.5 | Převody mezi různými kódováními uvnitř programu | 263 |
10.5.1 | Výstup akcentů na konzoli | 264 |
10.5.2 | Akcenty při práci se třídou RandomAccessFile | 264 |
10.6 | Čeština v GUI | 267 |
10.6.1 | Použití českých fontů | 267 |
10.6.2 | Použití fontů rodiny Lucida z JDK | 268 |
10.6.3 | Soubor font.properties.cs | 269 |
10.7 | Internacionalizace | 275 |
10.7.1 | Třída Locale | 276 |
10.7.2 | Formátování čísel | 279 |
10.7.3 | Formátování měny | 280 |
10.7.4 | Speciální formátování čísel | 281 |
10.7.5 | Formátování celých čísel podle vzoru | 282 |
10.7.6 | Formátování celých čísel pomocí metod | 283 |
10.7.7 | Formátování reálných čísel podle vzoru | 283 |
10.7.8 | Formátování data a času | 284 |
10.7.9 | Vlastní formát data a času | 286 |
10.7.10 | Porovnávání řetězců | 287 |
10.7.11 | Způsoby řazení v češtině podle normy | 287 |
10.7.12 | Označování začátků a konců slov | 291 |
11 | JAR | 297 |
11.1 | Základní použití | 298 |
11.1.1 | Vytvoření archivu | 298 |
11.1.2 | Výpis obsahu archivu | 299 |
11.1.3 | Rozbalení archivu | 300 |
11.2 | Spuštění programu z JAR souboru | 300 |
11.2.1 | Spuštění apletu | 300 |
11.2.2 | Spuštění aplikace | 302 |
11.3 | Soubor manifestu | 303 |
Literatura | 305 | |
Rejstřík | 306 |
Poslední změna (Last update): 23. 8. 2001
Počet přístupů od (Number of accesses since:) 23. 8.
2001:
Pavel
Herout