Kodiranje preprostega uporabniškega vmesnika Java

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

instagram viewer

.

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 samo
    JPanel
    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
    in
    JComboBox
    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 vrednosti
    sadne možnosti
    matrika, prijavljena prej.
  • The
    dodaj ()
    metoda
    JPanel
    vanj vmeša grafične komponente. A
    JPanel
    kot privzeto uporablja FlowLayout upravitelj postavitve. To je v redu za to aplikacijo, saj želimo, da nalepka sedi poleg kombiniranega polja. Dokler dodamo
    JLabel
    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
    metoda
    JButton
    . Ta metoda pričakuje primerek
    ActionListener
    razred, ki je razred, ki posluša dogodek.
  • Nato ustvarimo primerek
    ActionListener
    razreda z razglasitvijo novega predmeta z uporabo
    nov 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 uporaba
    setVisible ()
    za spremembo vidnosti
    JPanel
    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.