Sådan opretter du en enkel tabel i Java til brug i en GUI

Brug af arrays til at gemme tabeldata

En enkel måde at levere data til

klasse er at bruge to arrays. Den første indeholder kolonnenavnene i a

vifte:

Den anden matrix er en to-dimensionel objektgruppe, der indeholder dataene til tabellen. Denne række inkluderer for eksempel seks olympiske svømmere:

Nøglen her er at sikre, at de to arrays har det samme antal kolonner.

Konstruktion af JTable

Når du først har dataene på plads, er det en simpel opgave at oprette tabellen. Bare ring til

JTable
konstruktør og videregive de to arrays: Du vil sandsynligvis tilføje rullebjælker for at sikre, at brugeren kan se alle dataene. For at gøre det skal du placere.
JTable
til en
JScrollPane
: Når tabellen nu vises, vil du se kolonnerne og rækkerne med data og har mulighed for at rulle op og ned.

JTable-objektet giver en interaktiv tabel. Hvis du dobbeltklikker på en af ​​cellerne, vil du være i stand til at redigere indholdet - selvom enhver redigering kun påvirker GUI, ikke de underliggende data. (An begivenhedslytter skulle implementeres for at håndtere ændring af data.).

instagram viewer

For at ændre bredden på kolonnerne skal du holde musen på kanten af ​​en kolonneoverskrift og trække den frem og tilbage. Hvis du vil ændre rækkefølgen af ​​kolonnerne, skal du klikke og holde en kolonneoverskrift og derefter trække den til den nye position.

Sortering af kolonner

For at tilføje muligheden for at sortere rækkerne skal du ringe til

setAutoCreateRowSorter
metode: Når denne metode er indstillet til sand, kan du klikke på en kolonneoverskrift for at sortere rækkerne i henhold til indholdet af cellerne under den kolonne.

Ændring af bordets udseende

Hvis du vil kontrollere netlinjernes synlighed, skal du bruge

setShowGrid
metode: For at ændre bordets farve helt, skal du bruge.
setBackground
og
setGridColor
metoder: Tabelens kolonnebredder er som standard lige. Hvis beholderen, som tabellen er i, kan genudnyttes, vil bredden af ​​søjlerne udvide sig og krympe, og containeren bliver større eller mindre. Hvis en bruger ændrer størrelsen på kolonnen, ændres bredden på kolonner til højre for at imødekomme den nye kolonnestørrelse.

De oprindelige kolonnebredder kan indstilles ved hjælp af metoden setPreferredWidth eller en kolonne. Brug klassen TableColumn til først at få en henvisning til kolonnen, og derefter metoden setPreferredWidth til at indstille størrelsen:

Valg af rækker

Som standard kan brugeren vælge rækkerne i tabellen på en af ​​tre måder:

  • For at vælge en enkelt række skal du vælge en tabelcelle i den række.
  • Hvis du vil vælge kontinuerlige, flere rækker, skal du trække musen over flere rækker eller vælge tabelcellerne med skiftecellen nede.
  • Hvis du vil vælge ikke-kontinuerlige, flere rækker, skal du vælge tabelceller, mens du holder nede kontrolnøgle (kommandotast til Mac-computere).

Brug af en tabelmodel

Brug af et par matriser til dataene i en tabel kan være nyttigt, hvis du vil have en enkel Snor-baseret tabel, der kan redigeres. Hvis du ser på det datasæt, vi oprettede, indeholder det andre datatyper end

- det

kolonne indeholder

og

kolonne indeholder

. Alligevel vises begge disse kolonner som strenge. For at ændre denne opførsel skal du oprette en tabelmodel.

En tabelmodel administrerer de data, der skal vises i tabellen. For at implementere en tabelmodel kan du oprette en klasse, der udvider

klasse:

De seks ovennævnte metoder er dem, der bruges i denne trin-for-trin-guide, men der er flere metoder defineret af

klasse, der er nyttige til at manipulere dataene i en

objekt. Når du udvider en klasse til at bruge

du skal kun implementere

,

og

metoder.

Opret en ny klasse, der implementerer disse fem metoder, der er vist ovenfor:

Det giver mening i dette eksempel for

klasse for at holde de to strenge, der indeholder tabeldata. Derefter

,

og

metoder kan bruge matriserne til at angive værdierne for tabellen. Bemærk også, hvordan

Der er skrevet metode til at forhindre de to første kolonner, der skal redigeres.

I stedet for at bruge de to arrays til at oprette

objekt, kan vi bruge

klasse:

Når koden kører, vil du se, at

objektet bruger tabellen model, fordi ingen af ​​tabellen celler kan redigeres, og kolonnenavne bruges korrekt. Hvis

metoden ikke var implementeret, så vil kolonnenavnene på tabellen vises som standardnavne på A, B, C, D osv.

Lad os nu overveje metoden

. Dette alene gør tabelmodellen værd at implementere, fordi den giver

objekt med datatypen indeholdt i hver kolonne. Hvis du husker det, har objektdataarrayet to kolonner, der ikke er

datatyper:

kolonne, der indeholder ints, og

kolonne, der indeholder

. At kende disse datatyper ændrer funktionaliteten leveret af

objekt til disse kolonner. At køre prøvekodekoden med den implementerede tabelmodel betyder

kolonne vil faktisk være en række afkrydsningsfelter.

Tilføjelse af en ComboBox-editor

Du kan definere brugerdefinerede redaktører til cellerne i tabellen. For eksempel kan du gøre en kombinationsboks til et alternativ til standardtekstredigering for et felt.

Her er et eksempel ved hjælp af

landets felt:

Hvis du vil indstille standardeditoren for kolonnen land, skal du bruge

klasse for at få en henvisning til kolonnen land og

metode til at indstille

som celleeditor: