Java graafilise kasutajaliidese kodeerimine

click fraud protection

- 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

instagram viewer

.

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 ainult
    JPanel
    see on loodud selles reas. Selle tulemusel saame muutujat kasutada siseklassis. Selgub, miks me tahame seda koodi hiljem käsitleda.
  • JLabel
    ja
    JComboBox
    on nende graafiliste omaduste määramiseks edastatud väärtused. Silt kuvatakse kujul "Puuviljad:" ja liitkastis on nüüd väärtused, mis asuvad jaotises
    puuValikud
    varem kuulutatud massiiv.
  • lisama()
    meetod
    JPanel
    paigutab sellesse graafilised komponendid. A
    JPanel
    kasutab vaikimisi FlowLayout küljendusjuht. Selle rakenduse jaoks sobib see hästi, kuna soovime, et silt istuks liitkasti kõrval. Niikaua kui lisame
    JLabel
    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
    meetod
    JButton
    . Selle meetodi abil eeldatakse
    ActionListener
    klass, mis on klass, kes sündmust kuulab.
  • Järgmisena loome
    ActionListener
    klassi, kuulutades uue objekti, kasutades
    uus 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 kasutada
    setVisible ()
    et muuta programmi nähtavust
    JPanel
    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.

instagram story viewer