Utilizzo di array per archiviare i dati della tabella
Un modo semplice per fornire dati per
la classe consiste nell'usare due matrici. Il primo contiene i nomi delle colonne in a
Vettore:
Il secondo array è un array di oggetti bidimensionale che contiene i dati per la tabella. Questo array, ad esempio, include sei nuotatori olimpici:
La chiave qui è assicurarsi che i due array abbiano lo stesso numero di colonne.
Costruire la JTable
Una volta che hai i dati a posto, è semplice creare la tabella. Basta chiamare il
JTablecostruttore e passa i due array: probabilmente vorrai aggiungere barre di scorrimento per assicurarti che l'utente possa vedere tutti i dati. Per fare ciò, posizionare il.
JTablein un
JScrollPane: Ora quando viene visualizzata la tabella, vedrai le colonne e le file di dati e avrai la possibilità di scorrere su e giù.
L'oggetto JTable fornisce una tabella interattiva. Se fai doppio clic su una qualsiasi delle celle, sarai in grado di modificare i contenuti, sebbene qualsiasi modifica influisca solo sulla GUI, non sui dati sottostanti. (Un
listener di eventi dovrebbe essere implementato per gestire la modifica dei dati.).Per modificare le larghezze delle colonne, passa il mouse sul bordo dell'intestazione di una colonna e trascinalo avanti e indietro. Per modificare l'ordine delle colonne, fai clic e tieni premuta un'intestazione di colonna, quindi trascinala nella nuova posizione.
Ordinamento delle colonne
Per aggiungere la possibilità di ordinare le righe, chiamare il
setAutoCreateRowSortermetodo: quando questo metodo è impostato su true, è possibile fare clic sull'intestazione di una colonna per ordinare le righe in base al contenuto delle celle sotto quella colonna.
Modifica dell'aspetto della tabella
Per controllare la visibilità delle linee della griglia, utilizzare il
setShowGridmetodo: per modificare del tutto il colore della tabella, utilizzare il.
setBackgrounde
setGridColormetodi: le larghezze di colonna della tabella sono uguali per impostazione predefinita. Se il contenitore in cui si trova la tabella è ridimensionabile, le larghezze delle colonne si espandono e si restringono e il contenitore diventa sempre più grande. Se un utente ridimensiona la colonna, la larghezza delle colonne a destra cambierà per adattarsi alle nuove dimensioni della colonna.
Le larghezze iniziali della colonna possono essere impostate usando il metodo setPreferredWidth o una colonna. Utilizzare la classe TableColumn per ottenere prima un riferimento alla colonna, quindi il metodo setPreferredWidth per impostare la dimensione:
Selezione di righe
Per impostazione predefinita, l'utente può selezionare le righe della tabella in uno dei tre modi seguenti:
- Per selezionare una singola riga, selezionare una cella della tabella in quella riga.
- Per selezionare più righe continue, trascinare il mouse su più righe o selezionare le celle della tabella con la cella di spostamento premuta.
- Per selezionare più righe non continue, selezionare le celle della tabella tenendo premuto il tasto chiave di controllo (tasto comando per Mac).
Utilizzando un modello di tabella
L'uso di un paio di matrici per i dati di una tabella può essere utile se si desidera un semplice Cordatabella basata su che può essere modificata. Se guardi l'array di dati che abbiamo creato, contiene altri tipi di dati di
- il
la colonna contiene
e il
la colonna contiene
. Eppure entrambe queste colonne vengono visualizzate come stringhe. Per modificare questo comportamento, creare un modello di tabella.
Un modello di tabella gestisce i dati da visualizzare nella tabella. Per implementare un modello di tabella, è possibile creare una classe che estende il
classe:
I sei metodi sopra sono quelli usati in questa guida passo-passo, ma ci sono più metodi definiti da
classe utile per manipolare i dati in a
oggetto. Quando si estende una classe per usare il
è necessario implementare solo il file
,
e
metodi.
Crea una nuova classe implementando quei cinque metodi mostrati sopra:
Ha senso in questo esempio per
classe per contenere le due stringhe contenenti i dati della tabella. Poi il
,
e
i metodi possono utilizzare gli array per fornire i valori per la tabella. Inoltre, nota come
il metodo è stato scritto per non consentire la modifica delle prime due colonne.
Ora, invece di utilizzare i due array per creare il file
oggetto, possiamo usare il
classe:
Quando il codice viene eseguito, vedrai che il
L'oggetto utilizza il modello di tabella poiché nessuna delle celle della tabella è modificabile e i nomi delle colonne vengono utilizzati correttamente. Se la
il metodo non era stato implementato, quindi i nomi delle colonne nella tabella venivano visualizzati come nomi predefiniti di A, B, C, D, ecc.
Consideriamo ora il metodo
. Questo da solo rende il modello di tabella degno dell'implementazione perché fornisce il
oggetto con il tipo di dati contenuto in ciascuna colonna. Se ricordi, l'array di dati oggetto ha due colonne che non lo sono
tipi di dati: il
colonna che contiene ints e il
colonna che contiene
. Conoscere questi tipi di dati modifica la funzionalità fornita da
oggetto per quelle colonne. L'esecuzione del codice di tabella di esempio con il modello di tabella implementato significa che
colonna sarà in realtà una serie di caselle di controllo.
Aggiunta di un editor ComboBox
È possibile definire editor personalizzati per le celle nella tabella. Ad esempio, è possibile rendere una casella combinata un'alternativa alla modifica del testo standard per un campo.
Ecco un esempio usando
il campo paese:
Per impostare l'editor predefinito per la colonna del paese, utilizzare il
classe per ottenere un riferimento alla colonna del paese e il
metodo per impostare il
come l'editor di celle: