Kódování jednoduchého grafického uživatelského rozhraní Java

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

instagram viewer

.

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 pouze
    JPanel
    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
    a
    JComboBox
    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é v
    fruitOptions
    pole deklarováno dříve.
  • přidat()
    metoda
    JPanel
    umisťuje do něj grafické komponenty. A
    JPanel
    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áme
    JLabel
    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
    metoda
    JButton
    . Tato metoda očekává instanci
    ActionListener
    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žít
    setVisible ()
    změnit viditelnost
    JPanel
    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.