ο
DefaultTableModel
class είναι μια υποκατηγορία του
AbstractTableModel
. Όπως υποδηλώνει το όνομα, είναι το μοντέλο πίνακα που χρησιμοποιείται από το a
όταν κανένα μοντέλο πίνακα δεν ορίζεται ειδικά από τον προγραμματιστή. Το DefaultTableModel αποθηκεύει τα δεδομένα για το JTable σε a
Διάνυσμα
του
Φορείς
.
παρόλο που το
Διάνυσμα
είναι μια παλαιότερη συλλογή Java που υποστηρίζεται και δεν υπάρχει κανένα πρόβλημα με τη χρήση της, εκτός εάν η πρόσθετη επιβάρυνση που προκαλείται από τη χρήση μιας συγχρονισμένης συλλογής είναι ένα πρόβλημα για την εφαρμογή Java.
Το πλεονέκτημα της χρήσης του
DefaultTableModel
πάνω από ένα έθιμο
AbstractTableModel
δεν χρειάζεται να κωδικοποιήσετε τις μεθόδους όπως να προσθέσετε, να εισαγάγετε ή να διαγράψετε γραμμές και στήλες. Υπάρχουν ήδη για να αλλάξουν τα δεδομένα που υπάρχουν στο
Διάνυσμα
του
Φορείς.
Αυτό το καθιστά ένα γρήγορο και εύκολο μοντέλο τραπέζης για υλοποίηση.
Δήλωση εισαγωγής
εισαγωγή javax.swing.table. DefaultTableModel;
Κατασκευαστές
ο
DefaultTableModel
η τάξη έχει έξι
. Ο καθένας μπορεί να χρησιμοποιηθεί για τον πληθυσμό του
DefaultTableModel
με διαφορετικούς τρόπους.
Ο πρώτος κατασκευαστής δεν λαμβάνει επιχειρήματα και δημιουργεί ένα
DefaultTableModel
που δεν έχει δεδομένα, μηδενικές στήλες και μηδενικές σειρές:
DefaultTableModel defTableModel = DefaultTableModel ();
Ο επόμενος κατασκευαστής μπορεί να χρησιμοποιηθεί για τον καθορισμό του αριθμού των γραμμών και των στηλών του a
DefaultTableModel
χωρίς δεδομένα:
DefaultTableModel defTableModel = DefaultTableModel (10,10);
Υπάρχουν δύο κατασκευαστές που μπορούν να χρησιμοποιηθούν για να δημιουργήσουν ένα
DefaultTableModel
με ονόματα στηλών και έναν καθορισμένο αριθμό γραμμών (όλα περιέχουν τιμές null). Κάποιος χρησιμοποιεί ένα
Αντικείμενο
για να κρατήσετε τα ονόματα των στηλών, το άλλο a
Διάνυσμα
:
ή
DefaultTableModel defTableModel = ΠροεπιλογήTableModel (columnNames, 10);
Τέλος, χρησιμοποιούνται δύο κατασκευαστές για να συμπληρώσουν το
DefaultTableModel
με δεδομένα γραμμής μαζί με ονόματα στηλών. Ένας χρησιμοποιημένος
Αντικείμενο
συστοιχίες, το άλλο
Φορείς
:
ή
Χρήσιμες μέθοδοι
Για να προσθέσετε μια σειρά στο
DefaultTableModel
Χρησιμοποιήστε το
πρόσθεσε γραμμή
μαζί με τα δεδομένα σειράς για προσθήκη:
Για να εισαγάγετε μια σειρά χρησιμοποιήστε το
insertRow
, καθορίζοντας τον ευρετήριο γραμμών προς εισαγωγή και τα δεδομένα γραμμών:
Για να διαγράψετε μια σειρά, χρησιμοποιήστε το
removeRow
, καθορίζοντας το ευρετήριο γραμμών που θέλετε να διαγράψετε:
defTableModel.removeRow (0);
Για να πάρετε μια τιμή σε μια κυψέλη πίνακα, χρησιμοποιήστε το
getValueAt
μέθοδος. Για παράδειγμα, εάν τα δεδομένα στη σειρά 2, η στήλη 2 περιέχει ένα int:
τιμή int = tabModel.getValueAt (2, 2);
Για να ορίσετε μια τιμή σε μια κελιά πίνακα
setValueAt
με την τιμή που πρέπει να ορίσετε μαζί με τον δείκτη γραμμών και στηλών:
defTableModel.setValueAt (8888, 3, 2).
Συμβουλές Χρήσης
Αν ένα
JTable
δημιουργείται χρησιμοποιώντας τον κατασκευαστή ο οποίος περνάει μια δισδιάστατη συστοιχία που περιέχει τα δεδομένα γραμμών και έναν πίνακα που περιέχει τα ονόματα των στηλών:
τότε το παρακάτω cast δεν θα λειτουργήσει:
Ένα χρόνο εκτέλεσης
ClassCastException
θα πεταχτεί γιατί στην περίπτωση αυτή το
DefaultTableModel
δηλώνεται ως
στο
JTable
αντικείμενο και δεν μπορεί να μεταδοθεί. Μπορεί να μεταφερθεί μόνο στο
TableModel
διεπαφή. Ένας τρόπος γύρω από αυτό είναι να δημιουργήσετε τη δική σας
DefaultTableModel
και ορίστε να είναι το μοντέλο του
JTable
:
Μετά το
DefaultTableModel
defTableModel
μπορεί να χρησιμοποιηθεί για τον χειρισμό των δεδομένων στο
JTable
.
Για να δείτε το
DefaultTableModel
σε δράση, ρίξτε μια ματιά στο
.