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