swing:tree

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

====== Δένδρα (Trees) ====== Μπορείτε να δημιουργήσετε μία δενδρική δομή απεικόνισης των δεδομένων σας με χρήση της κλάσης [[http://docs.oracle.com/javase/7/docs/api/javax/swing/JTree.html|JTree]]. Ένα παράδειγμα δενδρικής δομής δίνεται στο παρακάτω σχήμα. {{ :swing:jtree-01.png |}} Όπως φαίνεται στο παραπάνω σχήμα ένα Component τύπου //JTree// απεικονίζει τα δεδομένα του κατακόρυφα ξεκινώντας από ένα κόμβο που ονομάζεται ρίζα του δένδρου και κάθε γραμμή του δένδρου περιέχει μόνο ένα κόμβο. Ένας κόμβος μπορεί να έχει ένα ή περισσότερα παιδιά (//branch node//) ή όχι (//leaf node//). Ένας κόμβος μπορεί να προσδιοριστεί μέσα από το [[http://docs.oracle.com/javase/7/docs/api/javax/swing/tree/TreePath.html|TreePath]] το οποίο προσδιορίζει τη σειρά τον κόμβων από την ρίζα και έως τον συγκεκριμένο κόμβο. Μπορείτε να δείτε το [[swing:jtree_demo_01|παράδειγμα δημιουργίας και διαχείρισης ενός JTree]] από το site της Oracle. Παρακάτω θα αναλύσουμε τα διάφορα στάδια του προγράμματος. ===== Δημιουργία του δένδρου ===== Κάθε δένδρο είναι ένα αντικείμενο της κλάσης [[http://docs.oracle.com/javase/7/docs/api/javax/swing/JTree.html|JTree]]. Επίσης ένα δένδρο περιέχει τον κόμβο που αντιστοιχεί στην ρίζα του δένδρου, αλλά και όλους τους άλλους κόμβους που συναποτελούν το δένδρο και διαμορφώνουν την τελική δενδρική δομή. Κάθε κόμβος του δένδρου θα πρέπει να υλοποιεί το interface [[http://docs.oracle.com/javase/7/docs/api/javax/swing/tree/MutableTreeNode.html|MutableTreeNode]]. Οι μέθοδοι του συγκεκριμένου interface δίνονται παρακάτω: <code java> void insert(MutableTreeNode child, int index) //Adds child to the receiver at index. void remove(int index) //Removes the child at index from the receiver. void remove(MutableTreeNode node) //Removes node from the receiver. void removeFromParent() //Removes the receiver from its parent. void setParent(MutableTreeNode newParent) //Sets the parent of the receiver to newParent. void setUserObject(Object object) Resets the user object of the receiver to object. </code> Από τις παραπάνω μεθόδους είναι προφανές ότι σε ένα κόμβο μπορείτε να προσθέσετε άλλους κόμβους ή να αφαιρέσετε κόμβους ή να μετακινήσετε κόμβους. Ένας απλός τρόπος ώστε οι κόβμοι σας να υλοποιούν το συγκεκριμένο interface είναι να ανήκουν στην κλάση [[http://docs.oracle.com/javase/7/docs/api/javax/swing/tree/DefaultMutableTreeNode.html|DefaultMutableTreeNode]] που υλοποιεί το συγκεκριμένο interface.

swing/tree.1431883847.txt.gz · Last modified: 2016/02/26 11:15 (external edit)