Paprastos „Java“ grafinės vartotojo sąsajos kodavimas

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

instagram viewer

. 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

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 tik
    JPanel
    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 nurodytos
    vaisiaiOpcijos
    masyvas, deklaruotas anksčiau.
  • papildyti()
    metodas
    JPanel
    įdeda į jį grafinius komponentus. A
    JPanel
    kaip numatytąją naudoja „FlowLayout“ maketuotojas. Tai puikiai tinka šiai programai, nes mes norime, kad etiketė būtų šalia kombo. Kol pridedame
    JLabel
    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
    metodas
    JButtonas
    . Šis metodas tikisi
    „ActionListener“
    klasė, kuri yra ta klase, kuri klauso įvykio.
  • Kitas, mes sukuriame
    „ActionListener“
    klasę, paskelbdamas naują objektą naudodamas
    naujas „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 naudoti
    setVisible ()
    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šą.