Kuidas Java-s lihtsat tabelit luua, et seda GUI-s kasutada

Massiivide kasutamine tabeli andmete salvestamiseks

Lihtne viis andmete esitamiseks

klass on kasutada kahte massiivi. Esimeses on veeru nimed a-ga

massiiv:

Teine massiiv on kahemõõtmeline objektmassiiv, mis hoiab tabeli andmeid. See massiiv hõlmab näiteks kuut olümpia ujujat:

Siinkohal on oluline veenduda, et kahel massiivil oleks sama arv veerge.

JTable ehitamine

Kui andmed on paigas, on tabeli koostamine lihtne. Lihtsalt helistage

JTable
ehitaja ja andke see kahele massiivile üle: tõenäoliselt soovite lisada kerimisribasid, et kasutaja näeks kõiki andmeid. Selleks pange.
JTable
sisse a
JScrollPane
: Nüüd, kui tabelit kuvatakse, näete veerge ja andmeridasid ning saate kerida üles ja alla.

JTable-objekt pakub interaktiivset tabelit. Kui teete mõnel lahtril topeltklõpsu, saate sisu muuta - ehkki igasugune redigeerimine mõjutab ainult GUI-d, mitte alusandmeid. (An sündmuse kuulaja oleks vaja andmete muutmise käitlemiseks rakendada.).

Veergude laiuse muutmiseks hõljutage hiirt veeru päise serval ja lohistage seda edasi-tagasi. Veergude järjekorra muutmiseks klõpsake ja hoidke veeru päist, seejärel lohistage see uude asukohta.

instagram viewer

Veergude sortimine

Ridade sortimise võimaluse lisamiseks helistage

setAutoCreateRowSorter
meetod: kui selle meetodi väärtus on tõene, võite klõpsata veeru päisel, et sortida ridu vastavalt selle veeru lahtrite sisule.

Tabeli välimuse muutmine

Võrgujoonte nähtavuse kontrollimiseks kasutage nuppu

setShowGrid
meetod: tabeli värvi muutmiseks kasutage nuppu.
setBackground
ja
setGridColor
meetodid: tabeli veeru laiused on vaikimisi võrdsed. Kui mahuti, milles laud on, on suurusjärgus, siis veergude laius laieneb ja kahaneb ning konteiner kasvab suuremaks või väiksemaks. Kui kasutaja muudab veeru suurust, siis paremal asuvate veergude laius muutub uue veeru suuruse järgi.

Algseid veerulaiusi saab seada meetodiga setPreferredWidth või veeruga. Klassi TableColumn abil saate esmalt veerule viite ja seejärel suuruse määramiseks meetodi setPreferredWidth:

Ridade valimine

Vaikimisi saab kasutaja valida tabeli read ühel kolmel viisil:

  • Ühe rea valimiseks valige selles reas tabeli lahter.
  • Pideva, mitme rea valimiseks lohistage hiirt mitme rea kohal või valige tabeli lahtrid, kui nihutatakse lahtrit.
  • Katkematute ja mitme rea valimiseks valige tabeli lahtrid, hoides all klahvi juhtimisvõti (käsuklahv Macidele).

Tabelimudeli kasutamine

Mõne massiivi kasutamine tabeli andmete jaoks võib olla kasulik, kui soovite lihtsat Keel-põhine tabel, mida saab redigeerida. Kui vaatate meie loodud andmemassiivi, sisaldab see muud tüüpi andmeid kui

-

veerg sisaldab

ja

veerg sisaldab

. Kuid mõlemad need veerud kuvatakse stringidena. Selle käitumise muutmiseks looge tabelimudel.

Tabelimudel haldab tabelis kuvatavaid andmeid. Tabelimudeli rakendamiseks saate luua klassi, mis laiendab

klass:

Ülaltoodud kuut meetodit on kasutatud selles samm-sammulises juhendis, kuid ka teisi meetodeid määratleb

klassist, mis on kasulikud a-ga andmete käsitsemisel

objekt. Klassi laiendamisel

peate rakendama ainult programmi

,

ja

meetodid.

Looge uus klass, rakendades neid viit ülaltoodud meetodit:

Selles näites on mõistlik

klass kahe stringi tabeli andmeid sisaldava stringi hoidmiseks. Siis

,

ja

meetoditega saab kasutada tabelite väärtuste pakkumiseks massiive. Samuti pange tähele, kuidas

meetod on kirjutatud kahe esimese veeru redigeerimise keelamiseks.

Selle asemel, et kasutada kahte massiivi, luua

objekti, saame kasutada

klass:

Kui kood töötab, näete, et

objekt kasutab tabelimudelit, kuna ühtegi tabeli lahtrit ei saa redigeerida ja veergude nimesid kasutatakse õigesti. Kui

meetodit polnud rakendatud, siis kuvatakse tabeli veerunimed vaikenimedena A, B, C, D jne.

Vaatleme nüüd meetodit

. Ainuüksi see muudab tabelimudeli rakendamist väärt, sest see pakub

objekt igas veerus sisalduva andmetüübiga. Kui mäletate, on objekti andmemassiivil kaks veergu, mis pole

andmetüübid:

veerg, mis sisaldab ints ja

veerg, mis sisaldab

. Nende andmetüüpide tundmine muudab süsteemi pakutavat funktsionaalsust

objekt nende veergude jaoks. Proovitabeli koodi käitamine koos rakendatud tabelimudeliga tähendab:

veerg on tegelikult ruutude rida.

ComboBox-redaktori lisamine

Saate määratleda tabelis olevate lahtrite jaoks kohandatud redigeerijad. Näiteks võite muuta liitkasti alternatiiviks välja tavalisele teksti redigeerimisele.

Siin on näide kasutades

maaväli:

Riigi veeru vaiketoimetaja määramiseks kasutage

klass, et saada viide riigi veerule, ja

meetod määramiseks

lahtriredaktorina: