Použití polí k uložení dat tabulky
Jednoduchý způsob, jak poskytnout data pro internet
třída má použít dvě pole. První obsahuje názvy sloupců v a
pole:
Druhé pole je dvourozměrné objektové pole, které uchovává data tabulky. Toto pole obsahuje například šest olympijských plavců:
Klíčem je zajistit, aby obě pole měla stejný počet sloupců.
Konstrukce JTable
Jakmile máte data na místě, je to jednoduchý úkol vytvořit tabulku. Stačí zavolat
JTablekonstruktér a předejte jej dvěma polím: Pravděpodobně budete chtít přidat posuvníky, aby uživatel viděl všechna data. Chcete-li tak učinit, umístěte.
JTabledo
JScrollPane: Nyní, když se zobrazí tabulka, uvidíte sloupce a řádky dat a budete mít možnost posouvat nahoru a dolů.
Objekt JTable poskytuje interaktivní tabulku. Pokud poklepete na některou z buněk, budete moci upravit obsah - ačkoli jakákoli úprava ovlivní pouze GUI, nikoli podkladová data. (An posluchač událostí by bylo třeba implementovat, aby bylo možné zvládat změnu dat.).
Chcete-li změnit šířku sloupců, umístěte kurzor myši na okraj záhlaví sloupce a přetáhněte jej tam a zpět. Chcete-li změnit pořadí sloupců, klikněte a podržte záhlaví sloupce a potom jej přetáhněte na nové místo.
Třídění sloupců
Chcete-li přidat možnost třídění řádků, zavolejte
setAutoCreateRowSortermetoda: Když je tato metoda nastavena na true, můžete klepnutím na záhlaví sloupce řadit řádky podle obsahu buněk pod tímto sloupcem.
Změna vzhledu tabulky
Pro kontrolu viditelnosti čar mřížky použijte
setShowGridmetoda: Chcete-li úplně změnit barvu tabulky, použijte.
setBackgrounda
setGridColormetody: Šířky sloupců tabulky jsou ve výchozím nastavení stejné. Pokud je kontejner, ve kterém je tabulka, rozměrný, šířka sloupců se zvětší a zmenší a kontejner se zvětšuje nebo zmenšuje. Pokud uživatel změní velikost sloupce, změní se šířka sloupců doprava tak, aby vyhovovala nové velikosti sloupce.
Počáteční šířky sloupců lze nastavit pomocí metody setPreferredWidth nebo sloupce. Pomocí třídy TableColumn nejprve získejte odkaz na sloupec a poté pomocí metody setPreferredWidth nastavte velikost:
Výběr řádků
Ve výchozím nastavení může uživatel vybrat řádky tabulky jedním ze tří způsobů:
- Chcete-li vybrat jeden řádek, vyberte buňku tabulky v tomto řádku.
- Chcete-li vybrat souvislé více řádků, přetáhněte myš přes několik řádků nebo vyberte buňky tabulky se stisknutou buňkou posunu.
- Chcete-li vybrat nespojité více řádků, vyberte buňky tabulky a přidržte klávesu ovládací klíč (příkazový klíč pro Mac).
Použití stolního modelu
Použití několika polí pro data tabulky může být užitečné, pokud chcete jednoduché Tětivatabulka, kterou lze upravit. Pokud se podíváte na datové pole, které jsme vytvořili, obsahuje jiné typy dat než
-
sloupec obsahuje
a
sloupec obsahuje
. Přesto jsou oba tyto sloupce zobrazeny jako řetězce. Chcete-li toto chování změnit, vytvořte model tabulky.
Model tabulky spravuje data, která se mají zobrazit v tabulce. Chcete-li implementovat model tabulky, můžete vytvořit třídu, která rozšiřuje
třída:
Šest výše uvedených metod je použito v tomto průvodci krok za krokem, ale existuje více metod definovaných v
třídy, které jsou užitečné při manipulaci s daty v
objekt. Při rozšiřování třídy používat
jste povinni implementovat pouze
,
a
metody.
Vytvořte novou třídu implementující výše uvedených pět metod:
V tomto příkladu to dává smysl pro
třída pro držení dvou řetězců obsahujících data tabulky. Pak,
,
a
metody mohou pomocí polí poskytnout hodnoty pro tabulku. Také si všimněte, jak
byla zapsána metoda, která zakáže první dva sloupce, které mají být upraveny.
Nyní místo použití dvou polí k vytvoření
objekt, můžeme použít
třída:
Když se kód spustí, uvidíte, že
objekt používá model tabulky, protože žádná z buněk tabulky nelze upravovat a názvy sloupců jsou správně použity. Pokud
metoda nebyla implementována, pak by se názvy sloupců v tabulce zobrazovaly jako výchozí názvy A, B, C, D atd.
Podívejme se nyní na metodu
. To samo o sobě činí model tabulky za implementaci, protože poskytuje
objekt s datovým typem obsaženým v každém sloupci. Pokud si pamatujete, datové pole objektu má dva sloupce, které nejsou
datové typy:
sloupec, který obsahuje ints, a
sloupec, který obsahuje
. Znalost těchto datových typů mění funkce poskytované
objekt pro tyto sloupce. Spuštění ukázkového kódu tabulky s implementovaným modelem tabulky znamená
sloupec bude ve skutečnosti řadou zaškrtávacích políček.
Přidání editoru ComboBox
Můžete definovat vlastní editory pro buňky v tabulce. Například můžete vytvořit rozbalovací seznam jako alternativu ke standardní úpravě textu pro pole.
Zde je příklad použití
pole země:
Chcete-li nastavit výchozí editor pro sloupec země, použijte
třídy získat odkaz na sloupec země, a
metoda pro nastavení
jako editor buněk: