Τάξη DefaultTableModel σε Java αποθηκεύει δεδομένα για το JTable

click fraud protection

ο

DefaultTableModel

class είναι μια υποκατηγορία του

AbstractTableModel

. Όπως υποδηλώνει το όνομα, είναι το μοντέλο πίνακα που χρησιμοποιείται από το a

όταν κανένα μοντέλο πίνακα δεν ορίζεται ειδικά από τον προγραμματιστή. Το DefaultTableModel αποθηκεύει τα δεδομένα για το JTable σε a

Διάνυσμα

του

Φορείς

.

παρόλο που το

Διάνυσμα

είναι μια παλαιότερη συλλογή Java που υποστηρίζεται και δεν υπάρχει κανένα πρόβλημα με τη χρήση της, εκτός εάν η πρόσθετη επιβάρυνση που προκαλείται από τη χρήση μιας συγχρονισμένης συλλογής είναι ένα πρόβλημα για την εφαρμογή Java.

Το πλεονέκτημα της χρήσης του

DefaultTableModel

πάνω από ένα έθιμο

AbstractTableModel

δεν χρειάζεται να κωδικοποιήσετε τις μεθόδους όπως να προσθέσετε, να εισαγάγετε ή να διαγράψετε γραμμές και στήλες. Υπάρχουν ήδη για να αλλάξουν τα δεδομένα που υπάρχουν στο

Διάνυσμα

του

Φορείς.

Αυτό το καθιστά ένα γρήγορο και εύκολο μοντέλο τραπέζης για υλοποίηση.

Δήλωση εισαγωγής

εισαγωγή javax.swing.table. DefaultTableModel;

Κατασκευαστές

ο

DefaultTableModel

η τάξη έχει έξι

instagram viewer

. Ο καθένας μπορεί να χρησιμοποιηθεί για τον πληθυσμό του

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

σε δράση, ρίξτε μια ματιά στο

.

instagram story viewer