Swing中JTree组件的作用是什么

发布时间:2021-08-12 11:17:12 作者:Leah
阅读:161
Windows服务器0元免费领,领完即止! 查看>>

本篇文章给大家分享的是有关Swing中JTree组件的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

JTree组件是另外一个复杂组件,它不像 JTable 那样难用,但是也不像 JList 那么容易。使用 JTree 时麻烦的部分是它要求的数据模型。

JTree组件的功能来自树的概念,树有分支和叶子。您在 Windows 中使用 IE 浏览器时,可能非常熟悉这个概念 —— 可以展开和折叠分支,显示可以选择和取消选择的不同叶子。

您很有可能发现树在应用程序中不像表格或列表那样有用,所以在 Internet 上没有许多有帮助的这方面的示例。实际上,像 JTable 一样,JTree 没有什么入门级的功能。如果决定使用 JTree,那么立即就可以达到中级水平,当然还必须学习随之而来的概念。因此,示例应用程序没有介绍 JTree,所以也很不幸,不管是入门教程还是中级教程,都没有涉及这个不太流行的组件。

但是,树有一些时候是符合需求的合理的 UI 组件。文件/目录系统就是一个示例(就像在 IE 浏览器中那样),而且当数据采取层次结构的时候,也就是说数据采用树的形式的时候,JTree组件就是***组件。

在 Swing 中,JTree组件看起来如下所示:

  1. import java.awt.Dimension;  

  2. import java.awt.Color;  

  3. import javax.swing.JFrame;  

  4. import javax.swing.JPanel;  

  5. import javax.swing.JScrollPane;  

  6. import javax.swing.JTree;  

  7. import javax.swing.BoxLayout;  

  8. import javax.swing.tree.TreePath;  

  9. import javax.swing.tree.DefaultMutableTreeNode;  

  10. import javax.swing.tree.DefaultTreeModel;  

  11. public class JTreeDemo  

  12. {  

  13. public static void main (String[] args)  

  14. {  

  15. //构造函数:JTree()  

  16. JTree example1 = new JTree();  

  17. //构造函数:JTree(Object[] value)  

  18. Object[] letters= {"a", "b", "c", "d", "e"};  

  19. JTree example2 = new JTree (letters);  

  20. //构造函数:JTree(TreeNode root)(TreeNode空)  

  21. //用空结点创建树  

  22. DefaultMutableTreeNode node1 = new DefaultMutableTreeNode();

  23. //定义树结点  

  24. JTree example3 = new JTree (node1);

  25. //用此树结点做参数调用 JTree的构造函数创建含有一个根结点的树  

  26. //构造函数:JTree(TreeNode root)(同上,只是TreeNode非空)  

  27. //用一个根结点创建树  

  28. DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("Color");  

  29. JTree example4 = new JTree (node2);//结点不可以颜色,默认为白面黑字  

  30. example4.setBackground (Color.lightGray);  

  31. //构造函数:JTree(TreeNode root, boolean asksAllowsChildren)
    (同上,只是TreeNode又有不同)  

  32. //使用DefaultMutableTreeNode类先用一个根结点创建树,
    设置为可添加孩子结点,再添加孩子结点  

  33. DefaultMutableTreeNode color = new DefaultMutableTreeNode
    ("Color", true);  

  34. DefaultMutableTreeNode gray = new DefaultMutableTreeNode 
    ("Gray");  

  35. color.add (gray);  

  36. color.add (new DefaultMutableTreeNode ("Red"));  

  37. gray.add (new DefaultMutableTreeNode ("Lightgray"));  

  38. gray.add (new DefaultMutableTreeNode ("Darkgray"));  

  39. color.add (new DefaultMutableTreeNode ("Green"));  

  40. JTree example5 = new JTree (color);  

  41. //构造函数:JTree(TreeNode root)(同上,只是TreeNode非空)  

  42. //通过逐个添加结点创建树  

  43. DefaultMutableTreeNode biology = new DefaultMutableTreeNode ("Biology");  

  44. DefaultMutableTreeNode animal = new DefaultMutableTreeNode ("Animal");  

  45. DefaultMutableTreeNode mammal = new DefaultMutableTreeNode ("Mammal");  

  46. DefaultMutableTreeNode horse = new DefaultMutableTreeNode ("Horse");  

  47. mammal.add (horse);  

  48. animal.add (mammal);  

  49. biology.add (animal);  

  50. JTree example6 = new JTree (biology);  

  51. horse.isLeaf();//if this node allows children.  

  52. horse.isRoot();//true if this node is the root of its tree  

  53. //构造函数:JTree(TreeModel newModel)  

  54. //用DefaultMutableTreeNodel类定义一个结点再用这个结点做参数定义一个用DefaultTreeMode  

  55. //创建一个树的模型,再用JTree的构造函数创建一个树  

  56.    

  57. DefaultMutableTreeNode root = new DefaultMutableTreeNode ("Root1");  

  58. DefaultMutableTreeNode child1 = new DefaultMutableTreeNode ("Child1");  

  59. DefaultMutableTreeNode child11 = new DefaultMutableTreeNode ("Child11");  

  60. DefaultMutableTreeNode child111 = new DefaultMutableTreeNode ("Child111");  

  61. DefaultMutableTreeNode child1111 = new DefaultMutableTreeNode ("Child1111");  

  62. root.add (child1); child1.add (child11); 

  63. child11.add (child111);child111.add(child1111);  

  64. DefaultTreeModel model = new DefaultTreeModel (root);  

  65. JTree example7 = new JTree (model);  

  66. JPanel panel = new JPanel();  

  67. panel.setLayout (new BoxLayout (panel, BoxLayout.X_AXIS));  

  68. panel.setPreferredSize (new Dimension (700, 400));  

  69. panel.add (new JScrollPane (example1));//JTree必须放在JScrollPane上  

  70. panel.add (new JScrollPane (example2));  

  71. panel.add (new JScrollPane (example3));  

  72. panel.add (new JScrollPane (example4));  

  73. panel.add (new JScrollPane (example5));  

  74. panel.add (new JScrollPane (example6));  

  75. panel.add (new JScrollPane (example7));  

  76.    

  77. JFrame frame = new JFrame ("JTreeDemo");  

  78. frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);  

  79. frame.setContentPane (panel);  

  80. frame.pack();  

  81. frame.show();  

  82.  }  

以上就是Swing中JTree组件的作用是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:
  1. swing组件是什么
  2. 怎么在Java中使用JTree树状组件

开发者交流群:

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

jtree swing

上一篇:python线程信号量semaphore怎么用

下一篇:thinkPHP5框架路由常用知识点有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》
开发者交流群×