Grafični uporabniški vmesnik (GUI), zgrajen s pomočjo Platforma Java NetBeans je sestavljen iz več plasti posod. Prva plast je okno, ki se uporablja za premikanje aplikacije po zaslonu računalnika. To je znano kot vsebnik najvišje ravni, njegova naloga pa je, da vsem drugim vsebnikom in grafičnim komponentam dodeli mesto za delo. Običajno za namizno aplikacijo bo ta vsebnik najvišje ravni izdelan s pomočjo
razred.
V obliko GUI lahko dodate poljubno število plasti, odvisno od njegove zapletenosti. Grafične komponente (npr. Besedilna polja, nalepke, gumbi) lahko postavite neposredno v
ali jih lahko razvrstite v druge vsebnike.
Plasti GUI-ja so znane kot hierarhija zadrževanja in jih je mogoče obravnavati kot družinsko drevo. Če je
je dedek, ki sedi na vrhu, si lahko naslednji posodi predstavljajo očeta in sestavne dele, ki jih ima kot otroke.
Za ta primer bomo zgradili GUI z
ki vsebuje dva
in a
. Prvi
bo zadržal a
in
. Drugi
bo zadržal a
in a
. Samo en
(in s tem tudi grafične komponente, ki jih vsebuje) bodo vidne hkrati. Gumb se bo uporabljal za preklop vidnosti obeh
.
Obstajata dva načina, kako zgraditi ta grafični vmesnik s pomočjo NetBeans. Prvi je, da ročno vtipkate kodo Java, ki predstavlja GUI, o čemer razpravljamo v tem članku. Drugi način je uporaba orodja NetBeans GUI Builder za gradnjo Swing GUI-jev.
Za informacije o uporabi JavaFX in ne Swing za ustvarjanje grafičnega vmesnika glejte Kaj je JavaFX?
Opomba: Celotna koda tega projekta je na Primer Java Code za gradnjo preproste aplikacije GUI.
Nastavitev projekta NetBeans
Ustvari novo Java Aplikacijski projekt v NetBeansu z glavnim razredom Poklicali bomo projekt
Kontrolna točka: V oknu Projekti NetBeans naj bo mapa GuiApp1 najvišje ravni (če ime ni krepko, z desno miškino tipko kliknite mapo in izberite
). Pod
mapa naj bo mapa Source Packages
imenovan GuiApp1. Ta mapa vsebuje glavni razred, imenovan
.java.
Preden dodamo katero koli kodo Java, na vrh seznama dodajte naslednji uvoz
razreda, med
linijo in
:
Ta uvoz pomeni, da bodo vsi razredi, ki jih potrebujemo za izdelavo te aplikacije GUI, na voljo za uporabo.
V glavni metodi dodajte to vrstico kode:
To pomeni, da je treba najprej ustvariti novo
objekt. Lepa bližnjica na primer programov, saj potrebujemo le en razred. Da bi to delovalo, potrebujemo konstruktor za
razreda, zato dodajte nov način:
V tej metodi bomo postavili vso kodo Java, potrebno za ustvarjanje GUI, kar pomeni, da bo od zdaj naprej vsaka vrstica znotraj
metoda.
Opomba o oblikovanju: Morda ste videli objavljeno kodo Java, ki prikazuje razred (tj.
) podaljšana od a
. Ta razred se nato uporabi kot glavno okno GUI za aplikacijo. Za običajno aplikacijo GUI tega resnično ni treba storiti. Edini čas, ki bi ga želeli razširiti
razreda, če morate narediti bolj določeno vrsto
(Poglej
za več informacij o izdelavi podrazreda).
Kot smo že omenili, je prva plast GUI je okno aplikacije iz
. Če želite ustvariti
predmeta, pokličite
konstruktor:
Nato bomo s pomočjo teh štirih korakov nastavili vedenje v oknu aplikacij GUI:
1. Prepričajte se, da se aplikacija zapre, ko uporabnik zapre okno, da se v ozadju ne nadaljuje z neznanim:
2. Nastavite naslov okna, tako da okno nima prazne naslovne vrstice. Dodaj to vrstico:
3. Nastavite velikost okna tako, da bo velikost okna ustrezala grafičnim komponentam, ki jih postavite vanj.
Opomba o oblikovanju: Druga možnost za nastavitev velikosti okna je klicanje
metoda
razred. Ta metoda izračuna velikost okna na podlagi grafičnih komponent, ki jih vsebuje. Ker tej vzorčni aplikaciji ni treba spremeniti velikosti okna, bomo le uporabili
metoda.
4. Osredite okno, da se prikaže na sredini zaslona računalnika, da se ne prikaže v zgornjem levem kotu zaslona:
Dodajanje dveh JPanelov
Dve vrstici tukaj ustvarjata vrednote za
in
predmete, ki jih bomo kmalu ustvarili, z uporabo dveh
nizi. Tako je lažje napolniti nekaj primerov vnosov za te komponente:
Ustvari prvi objekt JPanel
Zdaj pa ustvarimo prvo
objekt. Vseboval bo
in a
. Vsi trije so ustvarjeni s pomočjo svojih konstruktorskih metod:
Opombe k zgornjim trem vrsticam:
- The
JPanel
spremenljivka je razglašena končna. To pomeni, da lahko spremenljivka drži samoJPanel
ki je ustvarjena v tej vrstici. Rezultat tega je, da lahko spremenljivko uporabimo v notranjem razredu. Postalo bo jasno, zakaj želimo pozneje v kodi. - The
JLabel
inJComboBox
imajo vrednosti, ki so jim bile posredovane za nastavitev njihovih grafičnih lastnosti. Nalepka bo prikazana kot "Fruits:" in v polju "box" bo zdaj na voljo vrednostisadne možnosti
matrika, prijavljena prej. - The
dodaj ()
metodaJPanel
vanj vmeša grafične komponente. AJPanel
kot privzeto uporablja FlowLayout upravitelj postavitve. To je v redu za to aplikacijo, saj želimo, da nalepka sedi poleg kombiniranega polja. Dokler dodamoJLabel
najprej bo videti v redu:
Ustvari drugi objekt JPanel
Drugi
sledi enakemu vzorcu. Dodali bomo
in a
in nastavite vrednosti teh komponent na "Zelenjava:" in drugo
matrika
. Edina druga razlika je uporaba
metoda za skrivanje
. Ne pozabite, da bo obstajal
nadzor nad vidnostjo obeh
. Da bi to delovalo, je treba biti na začetku neviden. Dodajte te vrstice, da nastavite drugo
:
Ena od vrstic, ki jih velja omeniti v zgornji kodi, je uporaba
metoda
. The
vrednost naredi seznam v dveh stolpcih elemente, ki jih vsebuje. Temu se reče "časopisni slog" in je lep način za prikaz seznama elementov in ne bolj tradicionalnega navpičnega stolpca.
Dodajanje zaključnih dotikov
Zadnja potrebna komponenta je
za nadzor vidnosti
s. Vrednost, prenesena v
konstruktor nastavi oznako gumba:
To je edina komponenta, ki bo določila poslušalca dogodkov. Do dogodka pride, ko uporabnik interaktivno deluje z grafično komponento. Na primer, če uporabnik klikne gumb ali napiše besedilo v besedilno polje, se zgodi dogodek.
Poslušalec dogodka pove aplikaciji, kaj storiti, ko se dogodek zgodi.
uporablja razred ActionListener za "poslušanje" za klik gumba s strani uporabnika.
Ustvarite poslušalca dogodkov
Ker ta aplikacija ob kliku gumba opravi preprosto nalogo, lahko z anonimnim notranjim razredom določimo poslušalca dogodkov:
To je morda videti kot strašljiva koda, vendar jo morate samo razčleniti, da vidite, kaj se dogaja:
- Najprej pokličemo
addActionListener
metodaJButton
. Ta metoda pričakuje primerekActionListener
razred, ki je razred, ki posluša dogodek. - Nato ustvarimo primerek
ActionListener
razreda z razglasitvijo novega predmeta z uporabonov ActionListener ()
in nato zagotovite anonimni notranji razred - kar je vsa koda znotraj kodrastih oklepajev. - V notranjost anonimnega notranjega razreda dodajte metodo imenovano
dejanje izvedeno ()
. To je metoda, ki se pokliče s klikom na gumb. Vse, kar je potrebno pri tej metodi, je uporabasetVisible ()
za spremembo vidnostiJPanel
s.
Dodajte JPanele v JFrame
Za konec moramo dodati še dva
s in
na
. Privzeto je a
uporablja upravitelja postavitve BorderLayout. To pomeni, da je pet področij (v treh vrsticah)
ki lahko vsebuje grafično komponento (SEVER, {ZAPAD, CENTER, VZHOD}, JUGA). To območje določite s pomočjo
metoda:
Nastavite JFrame na vidno mesto
Končno bomo imeli vse zgoraj omenjene kode za nič, če ne nastavimo
biti viden:
Zdaj smo pripravljeni zagnati projekt NetBeans za prikaz okna aplikacije. S klikom na gumb preklopite med prikazom seznama ali seznama.