成人免费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-17 12:54:13

2009-07-10 13:20:37

Swing容器組件

2009-07-17 11:13:46

AWT和SwingSwing組件

2014-11-06 09:49:22

CloudFoundrPaaS

2014-11-06 10:46:48

CloudFoundr

2009-07-10 10:08:59

Spinner ModSwing組件

2009-07-14 18:05:28

輕量級Swing組件

2009-07-10 17:03:17

AWT組件Swing組件

2009-07-17 14:38:51

輕量級Swing組件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日日摸夜夜爽人人添av | 久久99蜜桃综合影院免费观看 | 91看片免费版 | 日日欧美 | 国产精品久久久久久福利一牛影视 | 超碰导航 | 国产成人网 | 精品1区2区3区4区 | 国产一区中文字幕 | 日韩成人影院 | 精品伦精品一区二区三区视频 | 成人性视频在线播放 | 欧美精品在线一区 | 色呦呦网站 | 国产成人精品免费视频大全最热 | 亚洲一区二区在线播放 | 久久91精品国产一区二区三区 | 国产乱码精品一区二区三区五月婷 | 久久综合一区二区 | 日韩在线播放av | 九九热免费观看 | 成人免费观看视频 | 日本电影韩国电影免费观看 | 91网站在线播放 | av一区二区三区四区 | 国产日韩精品久久 | h视频在线免费 | 久久亚 | 国产精品99 | 99re在线视频 | 久久国产精品免费视频 | 免费黄色在线观看 | 一区二区视频 | 国产精品亚洲成在人线 | 99爱国产| 欧美电影在线 | 福利片在线 | 亚洲区一区二 | 夜夜艹天天干 | 欧美日韩国产精品一区 | 日日操夜夜操天天操 |