Java, grafické uživatelské rozhraní
Programovací jazyk Java obsahuje disponuje grafickým uživatelským rozhraním (Graphic User Interface) nezávislým na zařízení. Grafické operace poskytují stejné výsledky bez ohledu na typ počítače či používaný operační systém. Tato vlastnost je v Javě velmi důležitá, uplatňuje se při tvorbě okenních aplikací, jejichž vzhled je pod různými operačními systémy (velmi) podobný. Pro vývoj GUI aplikací není nutné mít k dispozici žádné vývojové prostředí, vizuální komponenty lze vytvářet poměrně jednoduše zápisem zdrojového kódu. Práce ve vývojovém prostředí je příjemnější a pohodlnější, umožňuje vytvořit grafickéuživatelské rozhraní bez nutnosti zápisu kódu metodou drag and drop. V této kapitole se budeme zabývat první variantou.
Grafické uživatelské rozhraní. V našich aplikací můžeme používat řadu vizuálních komponent: formuláře, tlačítka, přepínače, dialogy, grafické komponenty, multimediální komponenty, tiskové komponenty. Tyto komponenty tvoří rozhraní aplikace, umožňují vzájemnou komunikaci mezi uživatelem a aplikací (zadávání dat nebo znázorňování výsledků různých výpočetních či grafických operací). Popsaný přístup je pro Javu přirozenější, práce s formátovaným vstupem či v konzoli není na rozdíl od C/C++ pro Javu typická.
Výhodou práce s GUI je snadnější ovladatelnost, přehlednost, názornost. Při návrhu grafického uživatelského rozhraní je nutno zohlednit, že aplikace se nemá přizpůsobovat uživateli a nikoliv uživatel aplikaci. Typy grafckých rozhraní v Javě. Java disponuje dvěma grafckými rozhraními. Starší z nich, AWT (Abstract Windows Toolkit), se již používá jen výjimečně (applety). Jeho nevýhodou byla značná náročnost na hardware a nepříliš pěkný vzhled (subjektivní, leč rozšířené tvrzení), výhodou podpora prakticky všech browserů, AWT rozhraní je vláknově zabezpečené. Aplikace přejímala vzhled OS, na kterém běžela.
Toto rozhraní bylo nahrazeno rozhraním JFC (Java Foundation Classes) obsahujícím jak vizuální, tak nevizuální komponenty. Nevizuální komponenty nazýváme Java Beans (kávové boby), vizuální komponenty představují grafické rozhraní Swing.
Swing je bohatší na komponenty, vychází však z AWT. Využívá stejné události, je postaven na podobných komponentách, práce s oběma rozhraními je více-méně analogická. Rozhraní Swing je rychlejší, nevýhodou je fakt, že ho neumí zobrazit korektně všechny browsery, je vláknově nezabezpečené. Vzhled aplikací a jejich komponent běžících nad rozhraním Swing může být měněn, aplikace nemusí přejímat vzhled OS.
Názvy tříd. Názvy tříd v knihovně AWT představující komponenty (Button, Table, Frame, ...) se liší od názvů tříd v rozhraní Swing a to přidáním písmene J (JButton, JTable, JFrame,...) V této kapitole se budeme zabývat popisem rozhraní Swing. V českém jazyce existuje velmi málo materiálů zabývajících se touto problematikou, podrobné informace o rozhraní Swing lze nalézt na stránkách společnosti Sun: http://java.sun.com/docs/books/tutorial/
uiswing/index.html
Událostmi řízené programování. Tento způsob programování je značně odlišný od přístupu, který jsme doposud používali. Program je tvořen řadou různých grafických komponent, které jsou za jeho běhu zobrazovány. Událost (event) vzniká činností uživatele, programu nebo OS (stisk, posun myši, klávesy, maximalizace, minimalizace, zavření okna, změna rozměrů okna, stisk tlačítka, překreslení obrazovky, ...).
Každá z vizuálních komponent má vlastní události, na které můžeme reagovat, tzv. je obsloužit. Obslužný kód je psán do metod, které nazýváme handlery. Tento způsob programování nazýváme událostmi řízeným programováním.
Vytvoření aplikace zpravidla představuje
Upozorněme, že návrh grafického rozhraní by měl být vždy oddělen od výkonné části programu. Tuto zásadu budeme ještě několikrát opakovat.
Základní komponenty a události
Dále se seznámíme s některými často používanými vizuálními komponentami knihovny Swing a událostmi s nimi spojenými. Popis všech komponent by vydal na samostatnou knihu, nebudeme ho proto uvádět.Nejprve je nutno importovat balíček javax.swing.*.
Autor: Filip Koval