Πώς να δημιουργήσετε έναν απλό πίνακα Java για χρήση σε ένα GUI

Χρησιμοποιώντας πίνακες για αποθήκευση δεδομένων πίνακα

Ένας απλός τρόπος για την παροχή δεδομένων για το

είναι να χρησιμοποιήσετε δύο πίνακες. Το πρώτο περιέχει τα ονόματα στηλών σε α

πίνακας:

Η δεύτερη συστοιχία είναι μια δισδιάστατη διάταξη αντικειμένων που περιέχει τα δεδομένα για τον πίνακα. Αυτή η διάταξη, για παράδειγμα, περιλαμβάνει έξι Ολυμπιακούς κολυμβητές:

Το κλειδί εδώ είναι να βεβαιωθείτε ότι οι δύο συστοιχίες έχουν τον ίδιο αριθμό στηλών.

Κατασκευή του JTable

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

JTable
κατασκευαστής και να περάσετε τις δύο συστοιχίες: Ίσως θέλετε να προσθέσετε γραμμές κύλισης για να βεβαιωθείτε ότι ο χρήστης μπορεί να δει όλα τα δεδομένα. Για να το κάνετε αυτό, τοποθετήστε το.
JTable
μέσα σε
JScrollPane
: Τώρα, όταν εμφανίζεται ο πίνακας, θα δείτε τις στήλες και τις σειρές δεδομένων και θα έχετε τη δυνατότητα να μετακινηθείτε πάνω και κάτω.

Το αντικείμενο JTable παρέχει ένα διαδραστικό πίνακα. Εάν κάνετε διπλό κλικ σε κάποιο από τα κελιά, θα μπορείτε να επεξεργαστείτε τα περιεχόμενα - αν και οποιαδήποτε επεξεργασία επηρεάζει μόνο το GUI, όχι τα υποκείμενα δεδομένα. (Ενα

instagram viewer
ακροατής του γεγονότος θα πρέπει να εφαρμοστεί για να χειριστεί την αλλαγή των δεδομένων.).

Για να αλλάξετε τα πλάτη των στηλών, τοποθετήστε το ποντίκι στην άκρη μιας κεφαλίδας στήλης και σύρετέ το προς τα πίσω και προς τα πίσω. Για να αλλάξετε τη σειρά των στηλών, κάντε κλικ και κρατήστε πατημένη μια κεφαλίδα στήλης και έπειτα σύρετέ τη στη νέα θέση.

Ταξινόμηση Στήλων

Για να προσθέσετε τη δυνατότητα ταξινόμησης των γραμμών, καλέστε το

setAutoCreateRowSorter
μέθοδος: Όταν αυτή η μέθοδος έχει οριστεί ως αληθής, μπορείτε να κάνετε κλικ σε μια κεφαλίδα στήλης για να ταξινομήσετε τις σειρές ανάλογα με τα περιεχόμενα των κελιών κάτω από αυτήν τη στήλη.

Αλλαγή της εμφάνισης του πίνακα

Για να ελέγξετε την ορατότητα των γραμμών δικτύου, χρησιμοποιήστε το

setShowGrid
μέθοδος: Για να αλλάξετε εντελώς το χρώμα του πίνακα, χρησιμοποιήστε το.
setBackground
και
setGridColor
μέθοδοι: Τα πλάτη της στήλης του πίνακα είναι ίσα εξ ορισμού. Εάν το δοχείο στο οποίο βρίσκεται ο πίνακας είναι εκ νέου μέγεθος, τότε τα πλάτη των στηλών θα επεκταθούν και θα συρρικνωθούν και το δοχείο θα μεγαλώσει ή θα είναι μικρότερο. Εάν ένας χρήστης αλλάξει το μέγεθος της στήλης, τότε το πλάτος των στηλών δεξιά θα αλλάξει για να προσαρμοστεί το νέο μέγεθος της στήλης.

Τα αρχικά πλάτη της στήλης μπορούν να οριστούν χρησιμοποιώντας τη μέθοδο setPreferredWidth ή μια στήλη. Χρησιμοποιήστε την κλάση TableColumn για να λάβετε πρώτα μια αναφορά στη στήλη και, στη συνέχεια, τη μέθοδο setPreferredWidth για να ορίσετε το μέγεθος:

Επιλογή γραμμών

Από προεπιλογή, ο χρήστης μπορεί να επιλέξει τις σειρές του πίνακα με τρεις τρόπους:

  • Για να επιλέξετε μια μόνο σειρά, επιλέξτε ένα κελί πίνακα σε αυτή τη σειρά.
  • Για να επιλέξετε συνεχείς, πολλαπλές σειρές, σύρετε το ποντίκι πάνω από πολλές σειρές ή επιλέξτε τα κελιά πίνακα με το στοιχείο μετατόπισης που πιέστηκε.
  • Για να επιλέξετε μη συνεχή, πολλαπλές σειρές, επιλέξτε κελιά πίνακα ενώ κρατάτε πατημένο το κλειδί ελέγχου (πληκτρολογίου εντολών για Mac).

Χρησιμοποιώντας ένα μοντέλο πίνακα

Η χρήση ζευγών συστοιχιών για τα δεδομένα ενός πίνακα μπορεί να είναι χρήσιμη αν θέλετε ένα απλό Σειράπου μπορεί να επεξεργαστεί. Αν κοιτάξετε τον πίνακα δεδομένων που δημιουργήσαμε, περιέχει άλλους τύπους δεδομένων από αυτόν

- ο

η στήλη περιέχει

και το

η στήλη περιέχει

. Ωστόσο, και οι δύο αυτές στήλες εμφανίζονται ως χορδές. Για να αλλάξετε αυτήν τη συμπεριφορά, δημιουργήστε ένα μοντέλο πίνακα.

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

τάξη:

Οι έξι παραπάνω μέθοδοι είναι εκείνες που χρησιμοποιούνται σε αυτόν τον οδηγό βήμα-προς-βήμα, αλλά υπάρχουν περισσότερες μέθοδοι που ορίζονται από το

class που είναι χρήσιμα για τον χειρισμό των δεδομένων σε ένα

αντικείμενο. Όταν επεκτείνετε μια κλάση για να χρησιμοποιήσετε το

πρέπει να εφαρμόσετε μόνο το

,

και

μεθόδων.

Δημιουργήστε μια νέα κλάση υλοποιώντας αυτές τις πέντε μεθόδους που παρουσιάζονται παραπάνω:

Έχει νόημα σε αυτό το παράδειγμα για το

για να κρατήσετε τις δύο συμβολοσειρές που περιέχουν τα δεδομένα πίνακα. Μετά το

,

και

οι μέθοδοι μπορούν να χρησιμοποιήσουν τις συστοιχίες για να δώσουν τις τιμές για τον πίνακα. Επίσης, παρατηρήστε πώς

έχει γραφτεί μέθοδος για να απαγορευτούν οι δύο πρώτες στήλες που πρόκειται να επεξεργαστούν.

Τώρα, αντί να χρησιμοποιήσετε τις δύο συστοιχίες για να δημιουργήσετε το

αντικείμενο, μπορούμε να χρησιμοποιήσουμε το

τάξη:

Όταν τρέξει ο κώδικας, θα δείτε ότι το

το αντικείμενο χρησιμοποιεί το μοντέλο πίνακα επειδή κανένα από τα κελιά του πίνακα δεν είναι επεξεργάσιμα και τα ονόματα των στηλών χρησιμοποιούνται σωστά. Αν το

η μέθοδος δεν είχε εφαρμοστεί, τότε τα ονόματα στηλών στο τραπέζι θα εμφανίζονταν ως προεπιλεγμένα ονόματα των A, B, C, D, κ.λπ.

Ας εξετάσουμε τώρα τη μέθοδο

. Αυτό και μόνο κάνει το μοντέλο πίνακα αξίζει την εφαρμογή επειδή παρέχει το

αντικείμενο με τον τύπο δεδομένων που περιέχεται σε κάθε στήλη. Αν θυμάστε, ο πίνακας δεδομένων αντικειμένων έχει δύο στήλες που δεν είναι

τύποι δεδομένων: το

στήλη που περιέχει ints, και το

στήλη που περιέχει

. Η γνώση αυτών των τύπων δεδομένων αλλάζει τη λειτουργικότητα που παρέχεται από το

αντικείμενο για αυτές τις στήλες. Η εκτέλεση του κώδικα πίνακα δειγμάτων με το μοντέλο πίνακα που χρησιμοποιείται, σημαίνει το

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

Προσθήκη επεξεργαστή ComboBox

Μπορείτε να ορίσετε προσαρμοσμένους επεξεργαστές για τα κελιά στον πίνακα. Για παράδειγμα, θα μπορούσατε να κάνετε ένα σύνθετο πλαίσιο μια εναλλακτική λύση στην τυπική επεξεργασία κειμένου για ένα πεδίο.

Ακολουθεί ένα παράδειγμα χρήσης

το πεδίο της χώρας:

Για να ορίσετε τον προεπιλεγμένο επεξεργαστή για τη στήλη χώρας, χρησιμοποιήστε το

για να δείτε μια αναφορά στη στήλη χώρας και το

μέθοδος για τη ρύθμιση του

ως επεξεργαστή κυττάρων:

instagram story viewer