| Ú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