swing:tree

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

swing:tree [2015/05/17 17:30]
gthanos
swing:tree [2016/02/26 11:15]
Line 1: Line 1:
-====== Δένδρα (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.txt · Last modified: 2016/02/26 11:15 (external edit)