Grafinė vartotojo sąsaja (GUI), sukurta naudojant „Java NetBeans“ platforma yra sudarytas iš kelių konteinerių sluoksnių. Pirmasis sluoksnis yra langas, naudojamas programai perkelti aplink kompiuterio ekraną. Tai vadinama aukščiausio lygio konteineriu, o jo užduotis yra suteikti visiems kitiems konteineriams ir grafiniams komponentams vietą, kur jie galėtų dirbti. Paprastai darbalaukio programoms šis aukščiausio lygio konteineris bus pagamintas naudojant
klasė.
Savo GUI dizaine galite pridėti bet kokį sluoksnių skaičių, atsižvelgiant į jo sudėtingumą. Galite įdėti grafinius komponentus (pvz., Teksto laukelius, etiketes, mygtukus) tiesiai į
, arba galite juos sugrupuoti į kitus konteinerius.
GUI sluoksniai yra žinomi kaip izoliavimo hierarchija ir gali būti laikomi šeimos medžiu. Jei
yra senelis, sėdintis viršuje, tada kitas konteineris gali būti laikomas tėvu, o komponentai, kuriuos jis laiko kaip vaikai.
Šiame pavyzdyje sukursime GUI su
turinčių du
ir a
. Pirmas
laikys a
ir
. Antras
laikys a
ir a
. Tik vienas
(taigi ir grafiniai komponentai, kuriuos joje rasite) bus matomi vienu metu. Mygtukas bus naudojamas norint pakeisti abiejų matomumą
.
Yra du būdai sukurti šią GUI naudojant „NetBeans“. Pirmiausia rankiniu būdu įveskite „Java“ kodą, kuris atstovauja GUI, kuris aptariamas šiame straipsnyje. Antrasis yra „NetBeans GUI Builder“ įrankis kuriant „Swing“ GUI.
Norėdami daugiau informacijos apie „JavaFX“, o ne „Swing“ naudojimą kurdami GUI, žr Kas yra „JavaFX“?
Pastaba: Pilnas šio projekto kodas yra Java kodo pavyzdys, kaip sukurti paprastą grafinę vartotojo sąsają.
„NetBeans“ projekto nustatymas
Sukurkite naują „Java“ Taikymo projektas „NetBeans“ su pagrindine klase Mes vadinsime projektą
Kontrolinis taškas: „NetBeans“ lange „Projektai“ turėtų būti aukščiausio lygio „GuiApp1“ aplankas (jei vardas nėra paryškintas, dešiniuoju pelės mygtuku spustelėkite aplanką ir pasirinkite
). Po
aplankas turėtų būti šaltinio paketų aplankas su
vadinama „GuiApp1“. Šiame aplanke yra pagrindinė klasė, vadinama
.java.
Prieš pridėdami „Java“ kodą, viršuje pridėkite šiuos importuojamus failus
klasės, tarp
linija ir
:
Šis importas reiškia, kad visos klasės, kurias mums reikia norint sukurti šią GUI programą, galės naudotis.
Prie pagrindinio metodo pridėkite šią kodo eilutę:
Tai reiškia, kad pirmiausia reikia sukurti naują
objektas. Tai yra puikus trumpas pavyzdys, pavyzdžiui, programos, nes mums reikia tik vienos klasės. Kad tai veiktų, mums reikia
klasės, todėl pridėkite naują metodą:
Į šį metodą įdėsime visą „Java“ kodą, reikalingą GUI sukurti, tai reiškia, kad nuo šiol kiekviena eilutė bus „
metodas.
Dizaino pastaba: Galbūt matėte paskelbtą „Java“ kodą, kuris rodo klasę (t. Y.
) pratęstas nuo a
. Tada ši klasė naudojama kaip pagrindinis programos GUI langas. Įprastam GUI taikymui to nereikia. Vienintelis laikas, kurį norėtumėte pratęsti
klasė yra, jei reikia sukurti konkretesnį tipą
(pažiūrėk į
daugiau informacijos apie poklasio sudarymą).
Kaip minėta anksčiau, pirmasis sluoksnis GUI yra programos langas, pagamintas iš
. Norėdami sukurti
objektas, paskambinkite
konstruktorius:
Tada mes nustatysime mūsų GUI programos lango elgseną atlikdami šiuos keturis veiksmus:
1. Įsitikinkite, kad programa uždaroma vartotojui uždarius langą, kad ji ir toliau neveiktų nežinoma fone:
2. Nustatykite lango pavadinimą, kad lange nebūtų tuščios pavadinimo juostos. Pridėti šią eilutę:
3. Nustatykite lango dydį taip, kad langas atitiktų jūsų įdėtus grafinius komponentus.
Dizaino pastaba: Alternatyvi galimybė nustatyti lango dydį yra paskambinti
metodas
klasė. Šis metodas apskaičiuoja lango dydį pagal jame esančius grafinius komponentus. Kadangi šiai pavyzdinei programai nereikia keisti lango dydžio, mes tiesiog naudosime
metodas.
4. Įveskite vidurį lango, kad jis būtų rodomas kompiuterio ekrano viduryje, kad jis neatsirastų viršutiniame kairiajame ekrano kampe:
Pridedant du JPanel
Čia sukuriamos dvi eilutės vertybes už
ir
objektus, kuriuos greitai sukursime, naudodami du
masyvai. Tai palengvina kai kurių šių komponentų įrašų pavyzdžių užpildymą:
Sukurkite pirmąjį „JPanel“ objektą
Dabar sukurkime pirmąjį
objektas. Jame bus a
ir a
. Visi trys yra sukurti naudojant konstruktoriaus metodus:
Pastabos dėl pirmiau nurodytų trijų eilučių:
-
JPanel
kintamasis deklaruojamas galutinis. Tai reiškia, kad kintamasis gali laikyti tikJPanel
tai sukurta šioje eilutėje. Rezultatas yra tas, kad kintamąjį galime naudoti vidinėje klasėje. Paaiškės, kodėl norime vėliau įtraukti kodą. -
JLabel
ir„JComboBox“
turi reikšmes, kurios jiems perduotos, kad nustatytų jų grafines savybes. Etiketė bus rodoma kaip „Vaisiai:“, o dabar sudėtinės dėžutės vertės bus nurodytosvaisiaiOpcijos
masyvas, deklaruotas anksčiau. -
papildyti()
metodasJPanel
įdeda į jį grafinius komponentus. AJPanel
kaip numatytąją naudoja „FlowLayout“ maketuotojas. Tai puikiai tinka šiai programai, nes mes norime, kad etiketė būtų šalia kombo. Kol pridedameJLabel
pirma, jis atrodys gerai:
Sukurkite antrąjį JPanel objektą
Antras
vadovaujasi tuo pačiu modeliu. Mes pridėsime a
ir a
ir nustatykite tų komponentų reikšmes kaip „Daržovės:“ ir antrąją
masyvas
. Vienintelis kitas skirtumas yra
metodas paslėpti
. Nepamirškite, kad bus:
kontroliuodami abiejų matomumą
. Kad tai veiktų, pradžioje žmogus turi būti nematomas. Pridėkite šias eilutes, kad nustatytumėte antrąją
:
Viena eilutė, kurią verta paminėti aukščiau esančiame kode, yra
metodas
.
reikšmė leidžia sąraše esančius elementus rodyti dviem stulpeliais. Tai vadinama „laikraščių stiliumi“ ir yra puikus būdas parodyti elementų sąrašą, o ne tradicinę vertikalią koloną.
Pridedama apdaila
Paskutinis reikalingas komponentas yra
kontroliuoti
s. Vertė, perduota
konstruktorius nustato mygtuko etiketę:
Tai yra vienintelis komponentas, kuriam bus nustatytas įvykio klausytojas. „Įvykis“ įvyksta, kai vartotojas sąveikauja su grafiniu komponentu. Pvz., Jei vartotojas spustelėja mygtuką arba įveda tekstą į teksto lauką, įvyksta įvykis.
Renginio klausytojas programai nurodo, ką daryti įvykus įvykiui.
naudoja „ActionListener“ klasę, kad „klausytų“, kai vartotojas spustelėja mygtuką.
Sukurkite įvykių klausytoją
Kadangi ši programa atlieka paprastą užduotį, kai paspaudžiamas mygtukas, mes galime naudoti anoniminę vidinę klasę, norėdami apibrėžti įvykio klausytoją:
Tai gali atrodyti kaip baisus kodas, bet jūs tiesiog turite jį suskaidyti, kad pamatytumėte, kas vyksta:
- Pirmiausia mes vadiname
addActionListener
metodasJButtonas
. Šis metodas tikisi„ActionListener“
klasė, kuri yra ta klase, kuri klauso įvykio. - Kitas, mes sukuriame
„ActionListener“
klasę, paskelbdamas naują objektą naudodamasnaujas „ActionListener“ ()
ir tada pateikite anoniminę vidinę klasę - tai yra visas kodas, esantis garbanos skliausteliuose. - Prie anoniminės vidinės klasės pridėkite metodą, vadinamą
actionPerformed ()
. Tai metodas, kuris vadinamas, kai paspaudžiamas mygtukas. Viskas, ko reikia šiame metode, yra naudotisetVisible ()
pakeisti matomumąJPanel
s.
Pridėkite „JPanels“ prie „JFrame“
Galiausiai turime pridėti abu
smėlis
į
. Pagal numatytuosius nustatymus, a
naudoja „BorderLayout“ išdėstymo tvarkyklę. Tai reiškia, kad yra penkios sritys (per tris eilutes)
kuriame gali būti grafinis komponentas (ŠIAURĖ, {VAKARAS, CENTRAS, RYTAS}, PIETŲ). Nurodykite šią sritį naudodami
metodas:
Nustatykite, kad „JFrame“ būtų matomas
Galiausiai, visas aukščiau pateiktas kodas bus veltui, jei mes nenustatysime
būti matomam:
Dabar mes pasiruošę paleisti „NetBeans“ projektą, kad būtų rodomas programos langas. Paspaudę mygtuką, perjungsite į rodomą junginį arba sąrašą.