Úvod // 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 Jávě 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.5 Vazba logických fontů na fyzické fonty 60 // 3.2.6 Odvozené fonty v rámci jedné rodiny písem 60 // 3.2.7 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 Menultem 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.5.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 Are - kruhová výseč 185 // 8.2.5 Polygon a Polyline 185 // 8.3 Canvas a metoda paintO 186 // 8.4 Metody repaintO a updateO 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 // Obsah 9 // 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é vytvorení 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 // Obsah // 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.es 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