成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解Swing中JTree組件的功能

開發 后端
本文介紹JTree組件的功能來自樹的概念,樹有分支和葉子。您在 Windows 中使用 IE 瀏覽器時,可能非常熟悉這個概念。

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.  
  16. //構造函數:JTree()  
  17. JTree example1 = new JTree();  
  18.  
  19. //構造函數:JTree(Object[] value)  
  20. Object[] letters= {"a", "b", "c", "d", "e"};  
  21. JTree example2 = new JTree (letters);  
  22.  
  23. //構造函數:JTree(TreeNode root)(TreeNode空)  
  24. //用空結點創建樹  
  25. DefaultMutableTreeNode node1 = new DefaultMutableTreeNode();
  26. //定義樹結點  
  27. JTree example3 = new JTree (node1);
  28. //用此樹結點做參數調用 JTree的構造函數創建含有一個根結點的樹  
  29.  
  30. //構造函數:JTree(TreeNode root)(同上,只是TreeNode非空)  
  31. //用一個根結點創建樹  
  32. DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("Color");  
  33. JTree example4 = new JTree (node2);//結點不可以顏色,默認為白面黑字  
  34. example4.setBackground (Color.lightGray);  
  35.  
  36. //構造函數:JTree(TreeNode root, boolean asksAllowsChildren)
    (同上,只是TreeNode又有不同)  
  37. //使用DefaultMutableTreeNode類先用一個根結點創建樹,
    設置為可添加孩子結點,再添加孩子結點  
  38. DefaultMutableTreeNode color = new DefaultMutableTreeNode
    ("Color", true);  
  39. DefaultMutableTreeNode gray = new DefaultMutableTreeNode 
    ("Gray");  
  40. color.add (gray);  
  41. color.add (new DefaultMutableTreeNode ("Red"));  
  42. gray.add (new DefaultMutableTreeNode ("Lightgray"));  
  43. gray.add (new DefaultMutableTreeNode ("Darkgray"));  
  44. color.add (new DefaultMutableTreeNode ("Green"));  
  45. JTree example5 = new JTree (color);  
  46.  
  47. //構造函數:JTree(TreeNode root)(同上,只是TreeNode非空)  
  48. //通過逐個添加結點創建樹  
  49. DefaultMutableTreeNode biology = new DefaultMutableTreeNode ("Biology");  
  50. DefaultMutableTreeNode animal = new DefaultMutableTreeNode ("Animal");  
  51. DefaultMutableTreeNode mammal = new DefaultMutableTreeNode ("Mammal");  
  52. DefaultMutableTreeNode horse = new DefaultMutableTreeNode ("Horse");  
  53. mammal.add (horse);  
  54. animal.add (mammal);  
  55. biology.add (animal);  
  56. JTree example6 = new JTree (biology);  
  57. horse.isLeaf();//if this node allows children.  
  58. horse.isRoot();//true if this node is the root of its tree  
  59.  
  60. //構造函數:JTree(TreeModel newModel)  
  61. //用DefaultMutableTreeNodel類定義一個結點再用這個結點做參數定義一個用DefaultTreeMode  
  62. //創建一個樹的模型,再用JTree的構造函數創建一個樹  
  63.    
  64. DefaultMutableTreeNode root = new DefaultMutableTreeNode ("Root1");  
  65. DefaultMutableTreeNode child1 = new DefaultMutableTreeNode ("Child1");  
  66. DefaultMutableTreeNode child11 = new DefaultMutableTreeNode ("Child11");  
  67. DefaultMutableTreeNode child111 = new DefaultMutableTreeNode ("Child111");  
  68. DefaultMutableTreeNode child1111 = new DefaultMutableTreeNode ("Child1111");  
  69. root.add (child1); child1.add (child11); 
  70. child11.add (child111);child111.add(child1111);  
  71. DefaultTreeModel model = new DefaultTreeModel (root);  
  72. JTree example7 = new JTree (model);  
  73. JPanel panel = new JPanel();  
  74. panel.setLayout (new BoxLayout (panel, BoxLayout.X_AXIS));  
  75. panel.setPreferredSize (new Dimension (700, 400));  
  76. panel.add (new JScrollPane (example1));//JTree必須放在JScrollPane上  
  77. panel.add (new JScrollPane (example2));  
  78. panel.add (new JScrollPane (example3));  
  79. panel.add (new JScrollPane (example4));  
  80. panel.add (new JScrollPane (example5));  
  81. panel.add (new JScrollPane (example6));  
  82. panel.add (new JScrollPane (example7));  
  83.    
  84. JFrame frame = new JFrame ("JTreeDemo");  
  85. frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);  
  86. frame.setContentPane (panel);  
  87. frame.pack();  
  88. frame.show();  
  89.  }  

【編輯推薦】

  1. Swing SWT集成框架介紹
  2. 淺析Swing實現MDI的方法
  3. 概述Swing中的JApplet和JFrame
  4. 淺談Swing中的Metal觀感
  5. Swing動態刷新常用代碼
責任編輯:佚名 來源: 電子工業出版社
相關推薦

2009-07-10 18:06:59

JTree Swing

2012-01-17 14:05:29

JavaSwing

2009-07-10 12:30:12

Swing組件

2009-07-17 16:19:16

Swing核心組件

2009-07-10 10:19:57

JFormattedTSwing

2009-07-10 14:58:13

JLabel組件JFC和Swing

2009-07-16 10:11:06

渲染器RendererSwing組件

2009-07-15 11:02:32

Swing組件

2009-07-14 17:21:42

Swing組件

2009-07-10 16:29:32

Swing組件

2009-07-15 13:06:38

Swing組件

2009-07-10 13:20:37

Swing容器組件

2009-07-17 12:54:13

2009-07-17 17:00:20

JavaFX功能Swing

2012-01-17 13:46:55

JavaSwing

2009-07-10 10:08:59

Spinner ModSwing組件

2009-07-17 11:13:46

AWT和SwingSwing組件

2009-07-17 14:57:41

SwingWorkerSwing程序

2009-07-14 18:05:28

輕量級Swing組件

2009-07-17 14:38:51

輕量級Swing組件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲免费在线观看av | 欧美精品综合在线 | 亚洲成人黄色 | 免费观看一级特黄欧美大片 | 中文在线a在线 | 99在线观看视频 | 亚洲一区二区三区免费视频 | 日韩一区二区在线视频 | 中文在线亚洲 | 自拍中文字幕 | 国产精品久久国产精品久久 | 国产精品毛片一区二区在线看 | 国产精品日韩欧美一区二区 | 日韩成人在线观看 | www.嫩草 | 国产99热 | 国产精品91久久久久久 | 精品久久久久久久 | 免费黄色大片 | 午夜影院在线观看版 | 国产夜恋视频在线观看 | 视频1区 | 91 中文字幕 | 嫩草影院网址 | 高清视频一区二区三区 | 亚洲成人天堂 | 一级看片| sese视频在线观看 | 91在线视频免费观看 | 成人国产在线视频 | a级片播放 | 91网站在线看 | 日韩中文字幕一区二区三区 | 精品九九九 | 久久综合一区二区 | 九九热精品视频 | 欧美日韩成人在线 | 欧美a v在线| 色综合久久久 | 99这里只有精品 | 91视频在线看 |