Vienkārša Java grafiskā lietotāja interfeisa kodēšana

Grafiska lietotāja saskarne (GUI), kas izveidota, izmantojot Java NetBeans platforma sastāv no vairākiem konteineru slāņiem. Pirmais slānis ir logs, ko izmanto lietojumprogrammas pārvietošanai pa datora ekrānu. To sauc par augstākā līmeņa konteineru, un tā uzdevums ir visiem pārējiem konteineriem un grafiskajiem komponentiem dot vietu, kur strādāt. Parasti darbvirsmas lietojumprogrammām šis augstākā līmeņa konteiners tiks izgatavots, izmantojot

klase.

GUI dizainam varat pievienot neierobežotu skaitu slāņu, atkarībā no tā sarežģītības. Grafiskos komponentus (piemēram, tekstlodziņus, etiķetes, pogas) varat ievietot tieši

, vai arī varat grupēt tos citos konteineros.

GUI slāņi ir zināmi kā ierobežošanas hierarhija, un tos var uzskatīt par ciltskoku. Ja

ir vectēvs, kurš sēž augšpusē, tad nākamo trauku var uzskatīt par tēvu un komponentus, ko tas tur kā bērnus.

Šajā piemērā mēs izveidosim GUI ar

kas satur divus

un a

. Pirmais

rīkos a

un

. Otrais

rīkos a

un a

. Tikai viens

(un līdz ar to arī tajā esošie grafiskie komponenti) būs redzami vienlaikus. Poga tiks izmantota, lai pārslēgtu abu redzamību

instagram viewer

.

Ir divi veidi, kā izveidot šo GUI, izmantojot NetBeans. Pirmais ir manuāli ievadīt Java kodu, kas apzīmē GUI, kas ir apskatīts šajā rakstā. Otrais ir izmantot NetBeans GUI Builder rīku, lai izveidotu Swing GUI.

Informāciju par JavaFX izmantošanu, nevis Swing, lai izveidotu GUI, skatiet Kas ir JavaFX??

Piezīme: Pilns šī projekta kods ir plkst Java koda piemērs vienkāršas GUI lietojumprogrammas izveidošanai.

NetBeans projekta iestatīšana

Izveidojiet jaunu Java Lietojumprogramma NetBeans ar galveno klasi Mēs to sauksim

Kontrolpunkts: NetBeans projektā logā jābūt augšējā līmeņa GuiApp1 mapei (ja nosaukums nav norādīts treknrakstā, ar peles labo pogu noklikšķiniet uz mapes un izvēlieties

). Zem

mapei vajadzētu būt Source Packages mapei ar

kuru sauc par GuiApp1. Šajā mapē ir galvenā klase, kuru sauc

.java.

Pirms pievienojam Java kodu, augšpusē pievienojiet šādus importa failus

klase, starp

līnija un

:

Šis imports nozīmē, ka visas klases, kas mums vajadzīgas, lai izveidotu šo GUI lietojumprogrammu, mums būs pieejamas lietošanai.

Pie galvenās metodes pievienojiet šo koda rindu:

Tas nozīmē, ka pirmais, kas jādara, ir izveidot jaunu

objekts. Tas ir jauks saīsne, piemēram, programmām, jo ​​mums ir nepieciešama tikai viena klase. Lai tas darbotos, mums ir nepieciešams konstruktors

klasei, tāpēc pievienojiet jaunu metodi:

Šajā metodē mēs ievietosim visu Java kodu, kas nepieciešams GUI izveidošanai, tas nozīmē, ka turpmāk katra rindiņa atradīsies

metode.

Piezīme par dizainu: Jūs, iespējams, redzējāt publicētu Java kodu, kas parāda klasi (t.i.

) pagarināts no a

. Pēc tam šī klase tiek izmantota kā lietojumprogrammas galvenais GUI logs. Parastai GUI lietojumprogrammai tas tiešām nav jādara. Vienīgais laiks, kad vēlaties pagarināt

klase ir tad, ja jums ir jāveido konkrētāks veids

(Paskaties uz

lai iegūtu vairāk informācijas par apakšklases izveidošanu).

Kā jau minēts iepriekš, GUI ir lietojumprogrammas logs, kas izgatavots no

. Lai izveidotu

objektu, piezvaniet

konstruktors:

Tālāk mēs iestatīsim mūsu GUI lietojumprogrammu loga darbību, veicot šīs četras darbības:

1. Pārliecinieties, ka lietojumprogramma tiek aizvērta, kad lietotājs aizver logu, lai tā turpinātu darboties nezināma fonā:

2. Iestatiet loga nosaukumu, lai logam nebūtu tukša nosaukumjosla. Pievienojiet šo rindu:

3. Iestatiet loga izmēru tā, lai logs būtu tāda izmēra, lai tajā ietilptu grafiskās sastāvdaļas, kuras jūs tajā ievietojat.

Piezīme par dizainu: Alternatīva iespēja loga lieluma iestatīšanai ir piezvanīt

metode

klase. Šī metode aprēķina loga lielumu, pamatojoties uz tajā esošajiem grafiskajiem komponentiem. Tā kā šai programmas paraugam nav jāmaina tā loga izmērs, mēs vienkārši izmantosim

metode.

4. Centrējiet logu tā, lai tas parādās datora ekrāna vidū, lai tas neparādītos ekrāna augšējā kreisajā stūrī:

Divu JP paneļu pievienošana

Šeit izveidotas abas līnijas vērtības priekš

un

objektus, kurus drīzumā izveidosim, izmantojot divus

masīvi. Tas atvieglo dažu šo komponentu ierakstu aizpildīšanu:

Izveidojiet pirmo JPanel objektu

Tagad izveidosim pirmo

objekts. Tajā būs a

un a

. Visi trīs tiek veidoti, izmantojot to konstruktora metodes:

Piezīmes par iepriekšminētajām trim rindām:

  • JPanel
    mainīgais tiek deklarēts fināls. Tas nozīmē, ka mainīgais var turēt tikai
    JPanel
    kas ir izveidots šajā rindā. Rezultātā mainīgo var izmantot iekšējā klasē. Kļūs skaidrs, kāpēc mēs vēlamies vēlāk iekļauties kodā.
  • JLabel
    un
    JComboBox
    ir vērtības, kas viņiem nodotas, lai iestatītu grafiskās īpašības. Etiķete parādīsies kā "Augļi:", un kombinētajā lodziņā tagad būs vērtības, kas ietvertas
    augļiOpcijas
    masīvs, kas deklarēts iepriekš.
  • pievienot ()
    metode
    JPanel
    ievieto tajā grafiskos komponentus. A
    JPanel
    kā noklusējuma izmanto FlowLayout izkārtojuma vadītājs. Tas ir lieliski šajā lietojumprogrammā, jo mēs vēlamies, lai etiķete atrodas blakus kombinētajam lodziņam. Kamēr mēs pievienojam
    JLabel
    pirmkārt, tas izskatīsies labi:

Izveidojiet otro JPanel objektu

Otrais

seko tam pašam modelim. Mēs pievienosim a

un a

un iestatiet šo sastāvdaļu vērtības kā “Dārzeņi:” un otro

masīvs

. Vienīgā atšķirība ir

metode, lai paslēptu

. Neaizmirstiet, ka būs a

kontrolējot abu redzamību

. Lai tas darbotos, cilvēkam sākumā jābūt neredzamam. Pievienojiet šīs līnijas, lai iestatītu otro

:

Viena rindiņa, kuru vērts atzīmēt iepriekš minētajā kodā, ir

metode

.

vērtība liek sarakstam parādīt tajā esošos vienumus divās kolonnās. To sauc par "laikrakstu stilu", un tas ir jauks veids, kā parādīt vienumu sarakstu, nevis tradicionālāku vertikālo kolonnu.

Apdares materiālu pievienošana

Pēdējais nepieciešamais komponents ir

kontrolēt

s. Vērtība, kas nodota

konstruktors iestata pogas etiķeti:

Šī ir vienīgā sastāvdaļa, kurai būs definēts notikumu klausītājs. "Notikums" notiek, kad lietotājs mijiedarbojas ar grafisko komponentu. Piemēram, ja lietotājs noklikšķina uz pogas vai ieraksta tekstu tekstlodziņā, notiek notikums.

Pasākuma klausītājs aplikācijai norāda, kā rīkoties, ja notikums notiek.

izmanto klasi ActionListener, lai “noklausītos” lietotāja klikšķi.

Izveidojiet notikumu klausītāju

Tā kā šī lietojumprogramma veic vienkāršu uzdevumu, kad tiek noklikšķināta uz pogas, mēs varam izmantot anonīmu iekšējo klasi, lai definētu notikuma klausītāju:

Tas var izskatīties kā biedējošs kods, bet jums tas vienkārši ir jāsadala, lai redzētu notiekošo:

  • Pirmkārt, mēs saucam par
    addActionListener
    metode
    DžButons
    . Šī metode paredz
    ActionListener
    klase, kas ir tā klase, kas klausās notikumu.
  • Tālāk mēs izveidojam
    ActionListener
    klasei, deklarējot jaunu objektu, izmantojot
    jauns ActionListener ()
    un pēc tam nodrošinot anonīmu iekšējo klasi - tas ir viss kods cirtainu iekavās.
  • Anonīmā iekšējā klasē pievienojiet metodi ar nosaukumu
    actionPerformed ()
    . Šī ir metode, kas tiek izsaukta, noklikšķinot uz pogas. Viss, kas nepieciešams šajā metodē, ir izmantot
    setVisible ()
    mainīt redzamību
    JPanel
    s.

Pievienojiet JFrame JP paneļus

Visbeidzot, mums jāpievieno divi

smiltis

uz

. Pēc noklusējuma a

izmanto BorderLayout izkārtojumu pārvaldnieku. Tas nozīmē, ka ir pieci apgabali (trīs rindās)

kas var saturēt grafisko komponentu (NORTH, {WEST, CENTER, EAST}, SOUTH). Norādiet šo apgabalu, izmantojot

metode:

Iestatiet JFrame kā redzamu

Visbeidzot, viss iepriekš minētais kods būs veltīgs, ja mēs nenosakām

būt redzamam:

Tagad mēs esam gatavi palaist NetBeans projektu, lai parādītu lietojumprogrammas logu. Noklikšķinot uz pogas, tiks pārslēgts rādīt kombinēto lodziņu vai sarakstu.