Utilizarea Array-urilor pentru a stoca datele din tabel
O modalitate simplă de a furniza date pentru
clasa trebuie să folosească două tablouri. Primul reține numele coloanelor în a
matrice:
Al doilea tablou este un tablou de obiecte bidimensional care conține datele pentru tabel. Acest tablou, de exemplu, include șase înotători olimpici:
Cheia aici este să vă asigurați că cele două tablouri au același număr de coloane.
Construirea JTable-ului
După ce aveți datele în loc, este o sarcină simplă să creați tabelul. Sună doar
JTableconstructor și treceți-le pe cele două tablouri: Probabil veți dori să adăugați bare de defilare pentru a vă asigura că utilizatorul poate vedea toate datele. Pentru a face acest lucru, plasați.
JTableintr-o
JScrollPane: Acum, când tabelul este afișat, veți vedea coloanele și rândurile de date și vor avea capacitatea de a derula în sus și în jos.
Obiectul JTable oferă un tabel interactiv. Dacă faceți dublu clic pe oricare dintre celule, veți putea edita conținutul - deși orice editare afectează numai GUI, nu și datele de bază. (Un
ascultător de evenimente ar trebui să fie pus în aplicare pentru a face față schimbării datelor.).Pentru a schimba lățimile coloanelor, plasați mouse-ul pe marginea unui antet de coloană și trageți-l înainte și înapoi. Pentru a schimba ordinea coloanelor, faceți clic și mențineți apăsat un antet de coloană, apoi trageți-l în noua poziție.
Sortarea Coloanelor
Pentru a adăuga posibilitatea de a sorta rândurile, apelați
setAutoCreateRowSortermetoda: Când această metodă este setată pe adevărat, puteți face clic pe un antet de coloană pentru a sorta rândurile în funcție de conținutul celulelor de sub acea coloană.
Schimbarea aspectului tabelului
Pentru a controla vizibilitatea liniilor de grilă, utilizați butonul
setShowGridmetoda: Pentru a schimba culoarea tabelului cu totul, utilizați tasta.
setBackgroundși
setGridColormetode: Lățimile coloanei tabelului sunt egale în mod implicit. Dacă containerul în care se află tabelul este redimensionabil, atunci lățimile coloanelor se vor extinde și se vor micșora, iar containerul va crește mai mare sau mai mic. Dacă un utilizator redimensionează coloana, atunci lățimea coloanelor din dreapta se va schimba pentru a se potrivi cu noua dimensiune a coloanei.
Lățimile inițiale ale coloanei pot fi setate folosind metoda setPreferredWidth sau o coloană. Utilizați clasa TableColumn pentru a obține mai întâi o referință la coloană, apoi metoda setPreferredWidth pentru a seta dimensiunea:
Selectarea rândurilor
În mod implicit, utilizatorul poate selecta rândurile tabelului într-unul din trei moduri:
- Pentru a selecta un singur rând, selectați o celulă de tabel din acel rând.
- Pentru a selecta rânduri continue, multiple, trageți mouse-ul peste mai multe rânduri sau selectați celulele tabelului cu celula de deplasare apăsată.
- Pentru a selecta mai multe rânduri care nu sunt continue, selectați celulele tabelului ținând apăsat butonul cheie de control (cheia de comandă pentru Mac).
Utilizarea unui model de tabel
Utilizarea a câteva tablouri pentru datele unui tabel poate fi utilă dacă doriți un simplu Şir-tabelul bazat care poate fi editat. Dacă te uiți la tabloul de date pe care l-am creat, acesta conține alte tipuri de date decât
-
coloana contine
si
coloana contine
. Cu toate acestea, ambele coloane sunt afișate ca șiruri. Pentru a schimba acest comportament, creați un model de tabel.
Un model de tabel gestionează datele care vor fi afișate în tabel. Pentru a implementa un model de tabel, puteți crea o clasă care extinde
clasă:
Cele șase metode de mai sus sunt cele utilizate în acest ghid pas cu pas, dar există mai multe metode definite de
clasă care sunt utile în manipularea datelor dintr-un
obiect. Când extindeți o clasă pentru a utiliza
vi se cere să implementați numai
,
și
metode.
Creați o clasă nouă punând în aplicare cele cinci metode prezentate mai sus:
În acest exemplu are sens pentru
clasă pentru a ține cele două șiruri care conțin datele tabelului. Apoi,
,
și
metodele pot utiliza tablourile pentru a oferi valorile pentru tabel. De asemenea, observați cum
a fost scrisă metoda pentru a nu permite primele două coloane să fie editate.
Acum, în loc să folosești cele două tablouri pentru a crea
obiect, putem folosi
clasă:
Când codul rulează, veți vedea că
obiectul folosește modelul tabelului, deoarece niciuna dintre celulele tabelului nu pot fi modificate, iar numele coloanelor sunt utilizate corect. Dacă
metoda nu a fost implementată, atunci numele coloanelor de pe tabelă vor apărea ca nume implicite ale A, B, C, D etc.
Să luăm acum în considerare metoda
. Acest lucru face ca modelul de tabel să merite implementat, deoarece oferă
obiect cu tipul de date continut in fiecare coloana. Dacă vă amintiți, tabloul de date obiect are două coloane care nu sunt
tipuri de date:
coloana care conține ints și
coloana care contine
. Cunoașterea acestor tipuri de date schimbă funcționalitatea oferită de către
obiect pentru acele coloane. Rularea codului de tabel de exemplu cu modelul de tabel implementat înseamnă
coloana va fi de fapt o serie de căsuțe de selectare.
Adăugarea unui editor ComboBox
Puteți defini editori personalizați pentru celulele din tabel. De exemplu, puteți face o casetă combo o alternativă la editarea standard a textului pentru un câmp.
Iată un exemplu folosind
domeniul campului:
Pentru a seta editorul implicit pentru coloana de țară, utilizați tasta
clasa pentru a obține o referință la coloana de țară și
metoda de setare a
ca editor de celule: