Grafické uživatelské rozhraní (GUI) vytvořené pomocí Platforma Java NetBeans je tvořen několika vrstvami kontejnerů. První vrstva je okno, které slouží k přesunutí aplikace po obrazovce počítače. Toto je známé jako kontejner nejvyšší úrovně a jeho úkolem je poskytnout všem ostatním kontejnerům a grafickým komponentám místo pro práci. Obvykle pro stolní aplikaci bude tento kontejner nejvyšší úrovně vyroben pomocí
třída.
Do svého grafického uživatelského rozhraní můžete přidat libovolný počet vrstev v závislosti na jeho složitosti. Grafické komponenty (např. Textová pole, štítky, tlačítka) můžete umístit přímo do
nebo je můžete seskupit do jiných kontejnerů.
Vrstvy GUI jsou známé jako hierarchie kontejnmentu a lze je považovat za rodokmen. Pokud
je dědeček sedící nahoře, pak další kontejner lze považovat za otce a komponenty, které drží jako děti.
Pro tento příklad vytvoříme GUI s
obsahující dva
a
. První
bude držet
a
. Druhý
bude držet
a
. Jen jeden
(a tedy i grafické komponenty, které obsahuje) budou viditelné současně. Tlačítko se použije ke změně viditelnosti obou
.
Existují dva způsoby, jak vytvořit toto uživatelské rozhraní pomocí NetBeans. Prvním z nich je ruční zadání kódu Java, který představuje GUI, což je popsáno v tomto článku. Druhým je použití nástroje NetBeans GUI Builder pro tvorbu Swing GUI.
Informace o použití rozhraní JavaFX spíše než Swing k vytvoření GUI viz Co je to JavaFX?
Poznámka: Úplný kód pro tento projekt je na Příklad Java kódu pro vytváření jednoduché GUI aplikace.
Nastavení projektu NetBeans
Vytvoř nový Jáva Projekt aplikace v NetBeans s hlavní třídou Budeme nazývat projekt
Kontrolní bod: V okně Projekty NetBeans by měla být složka nejvyšší úrovně GuiApp1 (pokud název není tučně, klikněte pravým tlačítkem myši na složku a vyberte
). Pod
Složka by měla být složkou Source Packages s
nazývá se GuiApp1. Tato složka obsahuje hlavní třídu nazvanou
.Jáva.
Než přidáme jakýkoli kód Java, přidejte následující dovozy na začátek
třídy, mezi
linka a
:
Tyto dovozy znamenají, že všechny třídy, které potřebujeme k vytvoření této GUI aplikace, budou k dispozici pro použití.
V rámci hlavní metody přidejte tento řádek kódu:
To znamená, že první věcí, kterou musíte udělat, je vytvořit nový
objekt. Je to pěkná zkratka například programů, protože potřebujeme pouze jednu třídu. Aby to fungovalo, potřebujeme konstruktor pro
třídy, takže přidejte novou metodu:
V této metodě vložíme veškerý kód Java potřebný k vytvoření GUI, což znamená, že každý řádek od nynějška bude uvnitř
metoda.
Poznámka k designu: Možná jste viděli publikovaný kód Java, který ukazuje třídu (tj.
) rozšířené z a
. Tato třída je potom použita jako hlavní okno GUI pro aplikaci. Pro normální GUI aplikaci to opravdu není potřeba. Jediný čas, kdy byste chtěli rozšířit
třída je, pokud potřebujete udělat konkrétnější typ
(Podívejte se na
Další informace o vytváření podtřídy).
Jak již bylo zmíněno, první vrstva GUI je okno aplikace vyrobené z
. Chcete-li vytvořit
objekt, zavolejte
konstruktér:
Dále nastavíme chování našeho okna aplikace GUI pomocí těchto čtyř kroků:
1. Zajistěte, aby se aplikace zavřela, když uživatel zavře okno, takže nebude nadále běžet na pozadí neznámo:
2. Nastavte název okna tak, aby okno nemělo prázdný nadpis. Přidejte tento řádek:
3. Nastavte velikost okna tak, aby se okno přizpůsobilo grafickým komponentám, které do něj vložíte.
Poznámka k designu: Alternativní možností pro nastavení velikosti okna je zavolat
metoda
třída. Tato metoda počítá velikost okna na základě grafických komponent, které obsahuje. Protože tato ukázková aplikace nemusí měnit velikost okna, použijeme pouze
metoda.
4. Vycentrujte okno tak, aby se objevilo uprostřed obrazovky počítače tak, aby se neobjevilo v levém horním rohu obrazovky:
Přidání dvou JPanelů
Zde se vytvoří dva řádky hodnoty pro
a
objekty, které brzy vytvoříme, pomocí dvou
pole. To usnadňuje naplnění některých příkladů položek pro tyto komponenty:
Vytvořte první objekt JPanel
Nyní vytvořme první
objekt. Bude obsahovat
a
. Všechny tři jsou vytvořeny pomocí jejich konstruktérských metod:
Poznámky k výše uvedeným třem řádkům:
-
JPanel
proměnná je deklarována finále. To znamená, že proměnná pojme pouzeJPanel
to je vytvořeno v tomto řádku. Výsledkem je, že proměnnou můžeme použít ve vnitřní třídě. Bude zřejmé, proč chceme v kódu pokračovat později. -
JLabel
aJComboBox
nechat jim předat hodnoty pro nastavení jejich grafických vlastností. Štítek se objeví jako "Ovoce:" a Combobox bude nyní mít hodnoty obsažené vfruitOptions
pole deklarováno dříve. -
přidat()
metodaJPanel
umisťuje do něj grafické komponenty. AJPanel
používá FlowLayout jako výchozí správce rozložení. To je v pořádku pro tuto aplikaci, protože chceme, aby štítek seděl vedle comboboxu. Dokud přidámeJLabel
nejprve to bude vypadat dobře:
Vytvořte druhý objekt JPanel
Druhý
sleduje stejný vzor. Přidáme a
a
a nastavte hodnoty těchto složek na „Zelenina“ a druhou
pole
. Jediným dalším rozdílem je použití internetu
metoda skrýt
. Nezapomeňte, že bude
ovládání viditelnosti obou
. Aby to fungovalo, musí být člověk na začátku neviditelný. Přidejte tyto řádky a nastavte druhý
:
Jeden řádek, který stojí za zmínku ve výše uvedeném kódu, je použití
metoda
.
Hodnota způsobí, že seznam zobrazí položky, které obsahuje, ve dvou sloupcích. Toto se nazývá „novinový styl“ a je to pěkný způsob, jak zobrazit seznam položek, spíše než tradičnější vertikální sloupec.
Přidání dokončovacích doteků
Poslední potřebná komponenta je
pro kontrolu viditelnosti
s. Hodnota předaná v
konstruktor nastaví popisek tlačítka:
Toto je jediná součást, která bude definovat posluchače událostí. "Událost" nastane, když uživatel interaguje s grafickou komponentou. Například pokud uživatel klepne na tlačítko nebo zapíše text do textového pole, dojde k události.
Posluchač událostí říká aplikaci, co dělat, když se událost stane.
používá třídu ActionListener k "poslechnutí" kliknutí uživatele na tlačítko.
Vytvořte posluchače událostí
Protože tato aplikace při kliknutí na tlačítko provádí jednoduchý úkol, můžeme pro definování posluchače událostí použít anonymní vnitřní třídu:
Může to vypadat jako strašidelný kód, ale stačí ho rozebrat, abyste viděli, co se děje:
- Nejprve nazýváme
addActionListener
metodaJButton
. Tato metoda očekává instanciActionListener
class, což je třída, která poslouchá událost. - Dále vytvoříme instanci
ActionListener
třídy deklarováním nového objektu pomocínový ActionListener ()
a poté poskytnou anonymní vnitřní třídu - což je veškerý kód uvnitř složených závorek. - Uvnitř anonymní vnitřní třídy přidejte metodu nazvanou
actionPerformed ()
. Toto je metoda, která se volá po kliknutí na tlačítko. Vše, co je při této metodě potřeba, je použítsetVisible ()
změnit viditelnostJPanel
s.
Přidejte JPanels do JFrame
Nakonec je musíme přidat
s a
do
. Ve výchozím nastavení
používá správce rozložení BorderLayout. To znamená, že existuje pět oblastí (ve třech řadách)
který může obsahovat grafickou komponentu (SEVER, {ZÁPAD, CENTRUM, VÝCHOD}, JIŽNÍ). Určete tuto oblast pomocí
metoda:
Nastavte JFrame na viditelnou
Nakonec bude celý výše uvedený kód k ničemu, pokud nenastavíme
být viditelný:
Nyní jsme připraveni spustit projekt NetBeans a zobrazit okno aplikace. Kliknutím na tlačítko se přepíná mezi zobrazením kombinovaného seznamu nebo seznamu.