- abil loodud graafiline kasutajaliides (GUI) Java NetBeans platvorm koosneb mitmest konteinerite kihist. Esimene kiht on aken, mida kasutatakse rakenduse teisaldamiseks arvuti ekraanil. Seda nimetatakse kõrgema taseme konteineriks ja selle ülesandeks on anda kõigile teistele konteineritele ja graafilistele komponentidele koht, kus töötada. Tavaliselt tehakse selle tipptasemel konteineri töölauarakenduse jaoks
klass.
GUI-kujundusele saate lisada suvalise arvu kihte, sõltuvalt selle keerukusest. Graafilisi komponente (nt tekstikastid, sildid, nupud) saate paigutada otse jaotisse
, või saate neid grupeerida teistesse konteineritesse.
GUI kihte tuntakse eraldushierarhiana ja neid võib pidada sugupuuks. Kui
on ülaosas istuv vanaisa, siis võib järgmise konteineri mõelda isana ja komponente, mida ta hoiab lastena.
Selle näite jaoks loome graafilise kasutajaliidese a-ga
mis sisaldavad kahte
ja a
. Esimene
hoiab a
ja
. Teine
hoiab a
ja a
. Ainult üks
(ja seega ka selles sisalduvad graafilised komponendid) on korraga nähtavad. Nuppu kasutatakse nende kahe nähtavuse lülitamiseks
.
Selle GUI loomiseks NetBeansi abil on kaks võimalust. Esimene on GUI-d esindava Java-koodi käsitsi sisestamine, mida selles artiklis käsitletakse. Teine on kasutada NetBeans GUI Builderi tööriista Swing GUI-de ehitamiseks.
Lisateavet JavaFXi ja mitte Swingi kasutamise kohta graafilise kasutajaliidese loomiseks vt Mis on JavaFX??
Märge: Selle projekti täielik kood on aadressil Java-koodi näide lihtsa GUI-rakenduse loomiseks.
NetBeansi projekti seadistamine
Looge uus Java Rakendusprojekt NetBeansis põhiklassiga Me nimetame projekti
Kontrollpunkt: NetBeansi aknas Projektid peaks olema GuiApp1 ülataseme kaust (kui nimi pole paksus kirjas, paremklõpsake kausta ja valige
). Allpool
kaust peaks olema Source Packages kaust koos
nimega GuiApp1. Selles kaustas on põhiklass, mida nimetatakse
.java.
Enne kui lisate Java-koodi, lisage selle algusesse järgmised impordid
klassi vahel
joon ja
:
See import tähendab, et kõik klassid, mida selle GUI rakenduse loomiseks vajame, on meile kasutamiseks saadaval.
Põhimeetodi sees lisage see koodirida:
See tähendab, et esimese asjana tuleb luua uus
objekt. See on kena otsetee näiteks programmidele, kuna meil on vaja ainult ühte klassi. Selleks, et see toimiks, on meil vaja ehitajat
klassi, nii et lisage uus meetod:
Sellesse meetodisse paneme kogu GUI loomiseks vajaliku Java-koodi, mis tähendab, et nüüdsest on iga rida
meetod.
Kujundusmärkus: Võib-olla olete näinud avaldatud Java-koodi, mis näitab klassi (s.t.
) pikendatud a
. Seda klassi kasutatakse seejärel rakenduse peamiseks GUI-aknaks. Tavalise GUI-rakenduse jaoks pole seda tegelikult vaja teha. Ainus kord, kui soovite laiendada
klass on see, kui peate tegema konkreetsema tüübi
(vaadake
alamklassi moodustamise kohta lisateabe saamiseks).
Nagu varem mainitud, on kihi esimene kiht GUI on rakenduse aken, mis on tehtud a-st
. Et luua
objekti, helistage
ehitaja:
Järgmisena määrame GUI-rakenduste akna käitumise, kasutades järgmist nelja sammu:
1. Veenduge, et kasutaja sulgeb akna sulgemisel rakenduse, nii et selle taustal ei jätkuks tundmatu töötamine:
2. Seadke akna pealkiri, nii et aknal pole tühja tiitliriba. Lisage see rida:
3. Seadke akna suurus nii, et aken oleks sellise suurusega, et mahutada sinna paigutatud graafilised komponendid.
Kujundusmärkus: Alternatiivne võimalus akna suuruse määramiseks on helistada
meetod
klass. See meetod arvutab akna suuruse selles sisalduvate graafiliste komponentide põhjal. Kuna selle rakenduse näidis ei pea akna suurust muutma, kasutame lihtsalt rakendust
meetod.
4. Akna tsentreerimine arvutiekraani keskele nii, et see ei ilmu ekraani vasakpoolsesse ülanurka:
Kahe JP-paneeli lisamine
Need kaks rida loovad väärtused Selle eest
ja
objektid, mille loome varsti, kasutades kahte
massiivid. See lihtsustab nende komponentide mõne näitesisendi sisestamist:
Looge esimene JPaneli objekt
Nüüd loome esimese
objekt. See sisaldab a
ja a
. Kõik kolm on loodud nende konstruktsioonimeetodite abil:
Märkused kolme eespool nimetatud rea kohta:
-
JPanel
muutuja on deklareeritud lõplik. See tähendab, et muutuja saab hoida ainultJPanel
see on loodud selles reas. Selle tulemusel saame muutujat kasutada siseklassis. Selgub, miks me tahame seda koodi hiljem käsitleda. -
JLabel
jaJComboBox
on nende graafiliste omaduste määramiseks edastatud väärtused. Silt kuvatakse kujul "Puuviljad:" ja liitkastis on nüüd väärtused, mis asuvad jaotisespuuValikud
varem kuulutatud massiiv. -
lisama()
meetodJPanel
paigutab sellesse graafilised komponendid. AJPanel
kasutab vaikimisi FlowLayout küljendusjuht. Selle rakenduse jaoks sobib see hästi, kuna soovime, et silt istuks liitkasti kõrval. Niikaua kui lisameJLabel
esiteks näeb see hea välja:
Looge teine JPaneli objekt
Teine
järgib sama mustrit. Lisame a
ja a
ja määrake nende komponentide väärtused väärtuseks "Köögiviljad:" ja teine
massiiv
. Ainus muu erinevus on selle kasutamine
meetod varjamiseks
. Ärge unustage, et seal on a
nende kahe nähtavuse kontrollimine
. Selleks, et see toimiks, peab inimene olema alguses nähtamatu. Teise seadistamiseks lisage need read
:
Ülaltoodud koodis väärib märkimist rida
meetod
.
väärtus paneb loendi kuvama selles sisalduvaid üksusi kahes veerus. Seda nimetatakse "ajalehe stiiliks" ja see on kena viis tavapärase vertikaalse veeru asemel kuvada üksuste loend.
Viimistluspuute lisamine
Viimane vajalik komponent on
- kontrollida nähtavust
s. Väärtuses möödunud väärtus
ehitaja seab nupu sildi:
See on ainus komponent, mille sündmuse kuulaja määratleb. "Sündmus" toimub siis, kui kasutaja suhtleb graafilise komponendiga. Näiteks kui kasutaja klõpsab nuppu või kirjutab teksti tekstikasti, toimub sündmus.
Sündmuse kuulaja ütleb rakendusele, mida teha, kui sündmus juhtub.
kasutab ActionListeneri klassi kasutaja nupule klõpsamise kuulamiseks.
Looge sündmuste kuulaja
Kuna see rakendus täidab nupule klõpsates lihtsat ülesannet, saame sündmuse kuulaja määratlemiseks kasutada anonüümset siseklassi:
See võib tunduda hirmutav kood, kuid toimuva nägemiseks peate selle lihtsalt murdma:
- Esiteks kutsume
addActionListener
meetodJButton
. Selle meetodi abil eeldatakseActionListener
klass, mis on klass, kes sündmust kuulab. - Järgmisena loome
ActionListener
klassi, kuulutades uue objekti, kasutadesuus ActionListener ()
ja seejärel anonüümse siseklassi pakkumine - see on kõik kood sulgude sees. - Lisage anonüümse siseklassi juurde meetod nimega
actionPerformed ()
. Seda meetodit kutsutakse nupule klõpsamisel. Selle meetodi jaoks on vaja ainult kasutadasetVisible ()
et muuta programmi nähtavustJPanel
s.
Lisage JFrame'i JP-paneelid
Lõpuks peame need kaks lisama
s ja
juurde
. Vaikimisi a
kasutab paigutuse haldurit BorderLayout. See tähendab, et programmis on viis piirkonda (üle kolme rea)
mis võivad sisaldada graafilist komponenti (PÕHJA, {LÄÄN, KESK, EAST}, LÕUNA). Määrake see piirkond, kasutades nuppu
meetod:
Seadke JFrame olekuks Nähtav
Lõpuks on kogu ülaltoodud kood olnud asjatu, kui me ei sea seda
nähtav olema:
Nüüd oleme rakenduste akna kuvamiseks valmis käivitama projekti NetBeans. Nupul klõpsamisel vahetatakseboksi või loendi kuvamise vahel.