Hvordan lage en enkel tabell i Java for bruk i en GUI

click fraud protection

Bruke Arrays for å lagre tabelldataene

En enkel måte å skaffe data til

klasse er å bruke to matriser. Den første inneholder kolonnenavnene i a

matrise:

Den andre arrayen er en todimensjonal objektserie som inneholder dataene for tabellen. Denne arrayen inkluderer for eksempel seks olympiske svømmere:

Nøkkelen her er å sørge for at de to matriser har samme antall kolonner.

Konstruksjon av JTable

Når du har dataene på plass, er det en enkel oppgave å lage tabellen. Bare ring

JTable
konstruktør og gi dem de to matriser: Du vil sannsynligvis legge til rullefelt for å sikre at brukeren kan se alle dataene. For å gjøre det, plasser.
JTable
inn i en
JScrollPane
: Nå når tabellen vises, vil du se kolonnene og radene med data og ha muligheten til å bla opp og ned.

JTable-objektet gir en interaktiv tabell. Hvis du dobbeltklikker på noen av cellene, vil du kunne redigere innholdet - selv om all redigering bare påvirker GUI, ikke de underliggende dataene. (An hendelseslytter må implementeres for å håndtere endring av data.).

instagram viewer

Hvis du vil endre bredden på kolonnene, holder du musa på kanten av en kolonneoverskrift og drar den frem og tilbake. Hvis du vil endre rekkefølgen på kolonnene, klikker du og holder en kolonneoverskrift og drar den til den nye posisjonen.

Sortering av kolonner

Hvis du vil legge til muligheten til å sortere radene, kan du ringe til

setAutoCreateRowSorter
metode: Når denne metoden er satt til true, kan du klikke på en kolonneoverskrift for å sortere radene i henhold til innholdet i cellene under den kolonnen.

Endre utseende på tabellen

For å kontrollere synligheten til rutelinjene, bruk

setShowGrid
metode: For å endre fargen på tabellen helt, bruk.
setBackground
og
setGridColor
metoder: Kolonnebreddene i tabellen er som standard like. Hvis beholderen bordet befinner seg i, kan endres større, vil bredden på kolonnene utvide seg og krympe og beholderen blir større eller mindre. Hvis en bruker endrer størrelse på kolonnen, endres bredden på kolonnene til høyre for å imøtekomme den nye kolonnestørrelsen.

De første kolonnebreddene kan stilles inn med metoden setPreferredWidth eller en kolonne. Bruk klassen TableColumn for å først få en henvisning til kolonnen, og deretter metoden setPreferredWidth for å angi størrelsen:

Velge rader

Som standard kan brukeren velge radene i tabellen på en av tre måter:

  • Hvis du vil velge en enkelt rad, velger du en tabellcelle i den raden.
  • Hvis du vil velge kontinuerlige, flere rader, drar du musen over flere rader eller velger tabellcellene med skiftecellen nede.
  • Hvis du vil velge ikke-kontinuerlige, flere rader, velger du tabellceller mens du holder nede kontrollnøkkel (kommandotast for Mac-maskiner).

Ved hjelp av en tabellmodell

Å bruke et par matriser for dataene i en tabell kan være nyttig hvis du vil ha en enkel string-basert tabell som kan redigeres. Hvis du ser på datasystemet vi opprettet, inneholder det andre datatyper enn

- den

kolonnen inneholder

og

kolonnen inneholder

. Likevel vises begge disse kolonnene som strenger. Hvis du vil endre denne oppførselen, oppretter du en tabellmodell.

En tabellmodell klarer dataene som skal vises i tabellen. For å implementere en tabellmodell, kan du opprette en klasse som utvider

klasse:

De seks metodene ovenfor er de som brukes i denne trinnvise guiden, men det er flere metoder definert av

klasse som er nyttige i å manipulere dataene i en

gjenstand. Når du utvider en klasse for å bruke

du må bare implementere

,

og

metoder.

Lag en ny klasse som implementerer de fem metodene som er vist ovenfor:

Det er fornuftig i dette eksemplet for

klasse for å holde de to strengene som inneholder tabelldata. Og så

,

og

metoder kan bruke matriser for å angi verdiene for tabellen. Legg også merke til hvordan

metoden er skrevet for å ikke tillate de to første kolonnene som skal redigeres.

Nå, i stedet for å bruke de to matriser til å lage

objekt, kan vi bruke

klasse:

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

objektet bruker tabellmodellen fordi ingen av tabellcellene er redigerbare, og kolonnenavnene blir brukt riktig. Hvis

metoden ikke hadde blitt implementert, da vil kolonnenavnene på tabellen vises som standardnavn på A, B, C, D, etc.

La oss nå vurdere metoden

. Dette alene gjør tabellmodellen verdt implementeringen fordi den gir

objekt med datatypen i hver kolonne. Hvis du husker det, har objektdata-matrisen to kolonner som ikke er det

datatyper:

kolonne som inneholder ints, og

kolonne som inneholder

. Når du kjenner til disse datatypene, endres funksjonaliteten som tilbys av

objekt for de kolonnene. Å kjøre eksempler på tabellkode med implementert tabellmodell betyr

kolonnen vil faktisk være en serie av avmerkingsbokser.

Legge til en ComboBox Editor

Du kan definere tilpassede redaktører for cellene i tabellen. Du kan for eksempel gjøre en kombinasjonsboks til et alternativ til standard tekstredigering for et felt.

Her er et eksempel ved å bruke

landsfeltet:

Hvis du vil angi standardredigeringsprogram for landskolonnen, bruker du

klasse for å få en referanse til landskolonnen, og

metode for å sette

som celleredaktør:

instagram story viewer