[Java] Swing Tree component JTree

Source: Internet
Author: User

[Java] Swing Tree component JTree

A simple style

TreeNodeDemo. java <喎?http: www.bkjia.com kf ware vc " target="_blank" class="keylink"> VcD4NCjxwcmUgY2xhc3M9 "brush: java;"> Package com. sjf; import javax. swing. JFrame; import javax. swing. JTree; import javax. swing. event. treeSelectionEvent; import javax. swing. event. treeSelectionListener; import javax. swing. tree. defaultMutableTreeNode; public class TreeNodeDemo {public static void main (String [] args) {// create a tree node without parent and child nodes but with child nodes, and uses the specified user object to initialize it. // Public DefaultMutableTreeNode (Object userObject) DefaultMutableTreeNode group1 = new DefaultMutableTreeNode ("software Department"); TreeNode node1 = new TreeNode (); node1.setName ("Wang Yu "); node1.setNickName ("flying all over the sky"); group1.add (new DefaultMutableTreeNode (node1); TreeNode node2 = new TreeNode (); node2.setName ("Chen Meng"); node2.setNickName ("dream "); group1.add (new DefaultMutableTreeNode (node2); TreeNode node3 = new TreeNode (); node3.setName ("Shangguan feer"); node3.setNickName ("feer "); group1.add (new feature (node3); DefaultMutableTreeNode group2 = new DefaultMutableTreeNode ("sales"); TreeNode node4 = new TreeNode (); node4.setName ("Shangguan Waner "); node4.setNickName ("Wan Er"); group2.add (new DefaultMutableTreeNode (node4); TreeNode node5 = new TreeNode (); node5.setName ("Shangguan qiaoer"); node5.setNickName ("Qiao Er "); group2.add (new DefaultMutableTreeNode (node5); DefaultMutableTreeNode top = new DefaultMutableTreeNode ("Staff Management"); top. add (group1); top. add (group2); final JTree tree = new JTree (top); JFrame f = new JFrame ("JTreeDemo"); f. add (tree); f. setSize (300,300); f. setVisible (true); f. setdefaclocloseoperation (JFrame. EXIT_ON_CLOSE); // Add the selected event tree. addTreeSelectionListener (new TreeSelectionListener () {@ Override public void valueChanged (TreeSelectionEvent e) {DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree. getLastSelectedPathComponent (); if (node = null) {return;} // if Object object = node. getUserObject (); TreeNode user = (TreeNode) object; System. out. println ("You selected:" + user. toString ());}});}}

TreeNode. java

Package com. sjf; public class TreeNode {private String nickName = ""; private String name = ""; private String phone = ""; private int age; public String getName () {return name;} public void setName (String name) {this. name = name;} public String getNickName () {return nickName;} public void setNickName (String nickName) {this. nickName = nickName;} public String getPhone () {return phone;} public void setPhone (String phone) {this. phone = phone;} public int getAge () {return age;} public void setAge (int age) {this. age = age;} // focus on toString. The displayed Text of the node is toString public String toString () {return name + "[" + nickName + "]" ;}}

2. Icon Style

TreeNode. java

Package com. sjf; public class TreeNode {private String nickName = ""; private String name = ""; private String phone = ""; private int age; private String imagePath = ""; public String getImagePath () {return imagePath;} public void setImagePath (String imagePath) {this. imagePath = imagePath;} public String getName () {return name;} public void setName (String name) {this. name = name;} public String getNickName () {return nickName;} public void setNickName (String nickName) {this. nickName = nickName;} public String getPhone () {return phone;} public void setPhone (String phone) {this. phone = phone;} public int getAge () {return age;} public void setAge (int age) {this. age = age;} // focus on toString. The displayed Text of the node is toString public String toString () {return name + "[" + nickName + "]" ;}}

TreeCellRenderer. java

Package com. sjf; import java. awt. component; import javax. swing. imageIcon; import javax. swing. JTree; import javax. swing. tree. defaultMutableTreeNode; import javax. swing. tree. defaultTreeCellRenderer;/** custom tree description class, set each node of the tree to a different icon **/public class TreeCellRenderer extends defatretreecellrenderer {private static final long serialVersionUID = 1L; /*** Override the DefaultTreeCellRenderer method of the parent class */@ Override public Component getTreeCellRendererComponent (JTree tree, Object value, boolean selected, boolean expanded, boolean isLeaf, int row, boolean hasFocus) {// select if (selected) {setForeground (getTextSelectionColor ();} else {setForeground (getTextNonSelectionColor ();} // TreeNode DefaultMutableTreeNode treeNode = (partial) value; object obj = treeNode. getUserObject (); if (obj instanceof TreeNode) {TreeNode node = (TreeNode) obj; DefaultTreeCellRenderer tempCellRenderer = new defatretreecellrenderer (); tempCellRenderer. setLeafIcon (new ImageIcon (node. getImagePath (); return tempCellRenderer. getTreeCellRendererComponent (tree, node. toString (), selected, expanded, true, row, hasFocus);} else if (obj instanceof String) {String text = (String) obj; DefaultTreeCellRenderer tempCellRenderer = new DefaultTreeCellRenderer (); tempCellRenderer. setOpenIcon (new ImageIcon ("Image/open.jpg"); tempCellRenderer. setClosedIcon (new ImageIcon ("Image/close.jpg"); return tempCellRenderer. getTreeCellRendererComponent (tree, text, selected, expanded, false, row, hasFocus);} return super. getTreeCellRendererComponent (tree, value, selected, expanded, isLeaf, row, hasFocus );}}

TreeNodeDemo. java

Package com. sjf; import javax. swing. JFrame; import javax. swing. JTree; import javax. swing. event. treeSelectionEvent; import javax. swing. event. treeSelectionListener; import javax. swing. tree. defaultMutableTreeNode; public class TreeNodeDemo {public static void main (String [] args) {// create a tree node without parent and child nodes but with child nodes, and uses the specified user object to initialize it. // Public DefaultMutableTreeNode (Object userObject) DefaultMutableTreeNode group1 = new DefaultMutableTreeNode ("software Department"); TreeNode node1 = new TreeNode (); node1.setName ("Wang Yu "); node1.setNickName ("flying all over the sky"); node1.setImagePath ("Image/1.jpg"); group1.add (new region (node1); TreeNode node2 = new TreeNode (); node2.setName (" Chen Meng "); node2.setNickName ("dream"); node2.setImagePath ("Image/2.jpg"); group1.add (new feature (node2); TreeNode node3 = new TreeNode (); node3.setName (" Shangguan feer "); node3.setNickName (" Er"); node3.setImagePath ("Image/3.jpg"); group1.add (new feature (node3); DefaultMutableTreeNode group2 = new DefaultMutableTreeNode (" Sales Department "); treeNode node4 = new TreeNode (); node4.setName ("Shangguan Waner"); node4.setNickName ("Wan Er"); node4.setImagePath ("Image/4.jpg"); group2.add (new region (node4 )); treeNode node5 = new TreeNode (); node5.setName ("Shangguan qiaoer"); node5.setNickName ("qiaoer"); node5.setImagePath ("Image/5.jpg"); group2.add (new feature (node5 )); defaultMutableTreeNode root = new DefaultMutableTreeNode (); root. add (group1); root. add (group2 ); // ++ ++ ++ final JTree = new JTree (root ); tree. setCellRenderer (new TreeCellRenderer (); tree. putClientProperty ("JTree. lineStyle "," None "); tree. setRootVisible (false); JFrame frame = new JFrame ("JTreeDemo"); frame. add (tree); frame. setSize (300,300); frame. setVisible (true); frame. setdefaclocloseoperation (JFrame. EXIT_ON_CLOSE ); // ++ ++ +++ ++ // Add the selected event tree. addTreeSelectionListener (new TreeSelectionListener () {@ Override public void valueChanged (TreeSelectionEvent e) {DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree. getLastSelectedPathComponent (); if (node = null) {return;} // if Object object = node. getUserObject (); if (object instanceof TreeNode) {TreeNode user = (TreeNode) object; System. out. println ("You clicked:" + user. toString ();} else if (object instanceof String) {String text = (String) object; System. out. println ("You clicked:" + text );}}});}}

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.