Hur man skapar en enkel tabell i Java för användning i ett GUI

click fraud protection

Använda matriser för att lagra tabelldata

Ett enkelt sätt att tillhandahålla data för

klass är att använda två matriser. Den första innehåller kolumnnamnen i a

array:

Den andra matrisen är en tvådimensionell objektuppsättning som innehåller data för tabellen. Denna grupp inkluderar till exempel sex olympiska simmare:

Nyckeln här är att se till att de två matriserna har samma antal kolumner.

Konstruera JTable

När du har data på plats är det en enkel uppgift att skapa tabellen. Bara ringa

JTable
konstruktör och skicka det de två matriserna: Du kommer förmodligen att lägga till rullningsfält för att säkerställa att användaren kan se alla data. För att göra det, placera.
JTable
in i en
JScrollPane
: Nu när tabellen visas ser du kolumner och rader med data och har möjlighet att bläddra uppåt och nedåt.

JTable-objektet ger en interaktiv tabell. Om du dubbelklickar på någon av cellerna kommer du att kunna redigera innehållet - även om någon redigering bara påverkar GUI, inte underliggande data. (En händelse lyssnare skulle behöva implementeras för att hantera förändring av data.).

instagram viewer

Om du vill ändra bredden på kolumnerna håller du musen på kanten av en kolumnrubrik och drar den fram och tillbaka. Om du vill ändra kolumnernas ordning klickar du på och håller en kolumnrubrik och drar den sedan till den nya positionen.

Sortera kolumner

För att lägga till möjligheten att sortera raderna, ring

setAutoCreateRowSorter
metod: När den här metoden är inställd på true kan du klicka på en kolumnrubrik för att sortera raderna i enlighet med innehållet i cellerna under den kolumnen.

Ändra tabellets utseende

För att kontrollera rutnätets synlighet, använd

setShowGrid
metod: För att ändra tabellens färg helt, använd.
setBackground
och
setGridColor
metoder: Tabellens kolumnbredder är lika som standard. Om behållaren som bordet befinner sig i kan ändras igen, kommer kolonnens bredd att expandera och krympa och behållaren blir större eller mindre. Om en användare ändrar storlek på kolumnen kommer kolumnernas bredd att ändras för att passa den nya kolumnstorleken.

De ursprungliga kolumnbredderna kan ställas in med metoden setPreferredWidth eller en kolumn. Använd klassen TableColumn för att först få en referens till kolumnen och sedan metoden setPreferredWidth för att ställa in storleken:

Att välja rader

Som standard kan användaren välja tabellrader på ett av tre sätt:

  • Om du vill välja en enda rad väljer du en tabellcell i den raden.
  • För att välja kontinuerliga, flera rader, dra musen över flera rader eller välj tabellcellerna med skiftcellen intryckt.
  • Om du vill välja icke-kontinuerliga flera rader väljer du tabellceller medan du håller ner kontrollnyckel (kommandotangent för Mac).

Använda en tabellmodell

Att använda ett par matriser för data i en tabell kan vara användbart om du vill ha en enkel Sträng-baserad tabell som kan redigeras. Om du tittar på den dataarray som vi skapade innehåller den andra datatyper än

-

kolumnen innehåller

och den

kolumnen innehåller

. Ändå visas båda dessa kolumner som strängar. Om du vill ändra detta beteende skapar du en tabellmodell.

En tabellmodell hanterar data som ska visas i tabellen. För att implementera en tabellmodell kan du skapa en klass som utvidgar

klass:

De sex metoderna ovan är de som används i denna steg-för-steg-guide, men det finns fler metoder som definieras av

klass som är användbara för att manipulera data i en

objekt. När du utökar en klass för att använda

du måste bara implementera

,

och

metoder.

Skapa en ny klass som implementerar de fem metoderna som visas ovan:

Det är meningsfullt i detta exempel för

klass för att hålla de två strängarna som innehåller tabelldata. Sedan

,

och

metoder kan använda matriserna för att tillhandahålla värdena för tabellen. Lägg också märke till hur

metoden har skrivits för att inte tillåta de första två kolumnerna som ska redigeras.

Istället för att använda de två matriserna för att skapa

objekt, kan vi använda

klass:

När koden körs ser du att

objektet använder tabellmodellen eftersom ingen av tabellcellerna är redigerbara och kolumnnamnen används korrekt. Om

metoden inte hade implementerats, då kolumnnamnen i tabellen skulle visas som standardnamn för A, B, C, D, etc.

Låt oss nu överväga metoden

. Detta enbart gör tabellmodellen värd att genomföra eftersom den ger

objekt med datatypen i varje kolumn. Om du kommer ihåg har objektdatafältet två kolumner som inte är det

datatyper:

kolumn som innehåller ints och

kolumn som innehåller

. Att känna till dessa datatyper ändrar funktionaliteten som tillhandahålls av

objekt för dessa kolumner. Att köra provtabellkoden med implementerad tabellmodell betyder

kolumnen kommer faktiskt att vara en serie kryssrutor.

Lägga till en ComboBox Editor

Du kan definiera anpassade redigerare för cellerna i tabellen. Till exempel kan du göra en kombinationsruta till ett alternativ till standardtextredigering för ett fält.

Här är ett exempel med

landsfältet:

För att ställa in standardredigeraren för kolumnen land använder du

klass för att få en referens till landskolumnen och

metod för att ställa in

som cellredaktör:

instagram story viewer