Lekce 1 - Úvod do formulářových aplikací v Java Swing
Vítejte u prvního dílu seriálu, ve kterém se naučíme vytvářet okenní (formulářové) aplikace v Javě a vyzkoušíme si použití jednotlivých komponent. Budeme pracovat s tlačítky, textovými poli, tabulkami, ale i s obrázky, časovači a dalšími tzv. komponentami, které máme v těchto aplikacích k dispozici.
Seriál budu psát tak, abyste nepotřebovali žádné pokročilé znalosti. Předpokládám však, že znáte alespoň základy objektově orientovaného programování.
Swing
Swing je framework, který umožňuje jednoduchou tvorbu formulářových aplikací. Nalezneme zde plnou sadu připravených komponent pro většinu situací. A pokud nám nebudou stačit, můžeme si samozřejmě vytvořit vlastní nebo upravit nějakou existující. Právě Swingu se budeme v tomto seriálu věnovat.
Swing je postaven nad AWT, což je starší framework, který obaluje rozhraní samotného operačního systému. Oproti AWT poskytuje bohatší a komfortnější komponenty a navíc podporuje MVC architekturu, viz dále v seriálu.
V současné době existuje spolu se Swingem ještě jeden modernější framework a to JavaFX. Obsahuje lepší oddělení logiky a výstupu, podporu rychlejšího vykreslování, animací, multimédií a dalších nových technologií. Má ovšem složitější instalaci. V praxi se u formulářových aplikací používají oba frameworky.
První formulářová aplikace
Nezačneme jinak, než klasickou aplikací Hello World
,
tentokrát formulářovou
Pokud jste nečetli zdejší seriál, tak zopakuji, že je to jednoduchá
aplikace, která nedělá nic jiného, než že vypíše nějaký text.
Způsoby návrhu formuláře
Existují v zásadě dva způsoby, jakými lze Swing aplikace vytvářet, přesněji jakými lze vytvářet formuláře:
- Grafický návrhář - Moderní IDE nám umožňují vytvářet formulář pomocí tzv. grafického návrháře. Práce s návrhářem je velmi jednoduchá, formulář "naklikáme" a IDE nám vygeneruje jeho zdrojový kód. Tento způsob je ideální pro většinu aplikací a ušetří spoustu práce.
- Ruční návrh - Kód formuláře musí napsat sám programátor. Tvorba hlavně větších formulářů je velmi náročná a je třeba elementy pozicovat ručně pomocí různých mezer, panelů, tabulek a podobně. Tuto část za nás dělá v prvním uvedeném způsobu IDE. Ruční návrh formulářů je v oblibě hlavně na školách a v tomto seriálu se mu věnovat nebudeme. Pokud z nějakého důvodu nemůžete grafický návrhář v IDE používat, je pro vás určený seriál Ruční návrh formulářů v Java Swing.
Vytvoříme si v NetBeans nový projekt, jako typ projektu vybereme Java
with Maven - Java Application. Jako název zvolíme HelloSwing
a Group Id a package dáme cz.itnetwork
:

Ve vytvořeném projektu rozklikneme Source packages. Klikneme
pravým tlačítkem na soubor HelloSwing.java
a pomocí
Delete jej odstraníme. Poté klikneme pravým tlačítkem na balíček
cz.itnetwork
a vybereme New - JFrame form:

Bude to hlavní okno naší aplikace. Jako název zvolíme
HlavniJFrame
.
Okno našeho Netbeans bude nyní vypadat asi takto:

Popišme si jeho jednotlivé části, které budeme při vývoji formulářových aplikací používat. Důležité části jsou na obrázku výše zvýrazněné červeně.
- Designer (Grafický návrhář) - V Designeru vidíme, jak formulář vypadá. Zatím je to jen prázdné okno (prázdná plocha).
- Properties (Vlastnosti) - V okně Properties vidíme vlastnosti aktuálně označeného prvku na formuláři. Pokud okno nevidíte, zapněte si ho v menu View -> IDE Tools.
- Palette (Paleta komponent) - V paletě nalezneme komponenty, které na formulář můžeme vložit.
- Tlačítka Source / Design slouží k přepínání mezi grafickým návrhářem a kódem formuláře. Kód si popíšeme za malý moment.
Nastavení vlastností kontrolek
Když označíme nějakou komponentu na formuláři nebo formulář samotný, můžeme v okně Properties měnit jednotlivé vlastnosti komponenty.
Jelikož na formuláři žádný prvek nemáme, je označený právě
formulář. Formuláři nastavíme titulek na Pozdrav
. Vyhledáme
si vlastnost title
a do ní vložíme hodnotu Pozdrav
.
Tímto způsobem budeme nastavovat vlastnosti všech komponent na
formuláři.
Vložení komponenty na formulář
V paletě nyní vybereme Label
, což je textový popisek.
Vybíráme vždy Swing komponenty, v paletě jsou níže i
původní AWT, které používat nebudeme. Label
vložíme do
formuláře přesunutím myší. Formulář si zmenšíme a Label
myší jednoduše přesuneme doprostřed. Označenému labelu v okně
Properties nastavíme text na Pozdrav z formuláře
.
Soubor uložíme.
Nastavení třídy s metodou
main()
Jelikož jsme odstranili soubor HelloSwing
, který obsahoval
původní metodu main()
, musíme nyní Netbeans
říct, že nová metoda main()
je v souboru
HlavniJFrame
. Jinak by Netbeans nevědělo, co má spustit.
Klikneme tedy pravým tlačítkem na projekt HelloSwing
a
vybereme Properties. Tam na kartě Run, vedle řádku Main
Class, klikneme na tlačítko Browse a vybereme třídu
cz.itnetwork.HlavniJFrame
. Potvrdíme OK a projekt
uložíme.
Naši první okenní aplikaci můžeme spustit jako vždy zeleným tlačítkem Play nebo klávesou F6. Poté dostaneme podobný výsledek:

Aplikaci máte níže ke stažení pro případ, že se vám něco nepodařilo, bude tomu tak v každém dílu.
Příště, Java Swing pod pokličkou, si vysvětlíme, jak aplikace funguje pod pokličkou, tedy ze strany kódu.
Měl jsi s čímkoli problém? Stáhni si vzorovou aplikaci níže a porovnej ji se svým projektem, chybu tak snadno najdeš.
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkami
Staženo 738x (3.28 kB)
Aplikace je včetně zdrojových kódů v jazyce Java