您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關Swing中JTree組件的作用是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
JTree組件是另外一個復雜組件,它不像 JTable 那樣難用,但是也不像 JList 那么容易。使用 JTree 時麻煩的部分是它要求的數據模型。
JTree組件的功能來自樹的概念,樹有分支和葉子。您在 Windows 中使用 IE 瀏覽器時,可能非常熟悉這個概念 —— 可以展開和折疊分支,顯示可以選擇和取消選擇的不同葉子。
您很有可能發現樹在應用程序中不像表格或列表那樣有用,所以在 Internet 上沒有許多有幫助的這方面的示例。實際上,像 JTable 一樣,JTree 沒有什么入門級的功能。如果決定使用 JTree,那么立即就可以達到中級水平,當然還必須學習隨之而來的概念。因此,示例應用程序沒有介紹 JTree,所以也很不幸,不管是入門教程還是中級教程,都沒有涉及這個不太流行的組件。
但是,樹有一些時候是符合需求的合理的 UI 組件。文件/目錄系統就是一個示例(就像在 IE 瀏覽器中那樣),而且當數據采取層次結構的時候,也就是說數據采用樹的形式的時候,JTree組件就是***組件。
在 Swing 中,JTree組件看起來如下所示:
import java.awt.Dimension;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.BoxLayout;
import javax.swing.tree.TreePath;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
public class JTreeDemo
{
public static void main (String[] args)
{
//構造函數:JTree()
JTree example1 = new JTree();
//構造函數:JTree(Object[] value)
Object[] letters= {"a", "b", "c", "d", "e"};
JTree example2 = new JTree (letters);
//構造函數:JTree(TreeNode root)(TreeNode空)
//用空結點創建樹
DefaultMutableTreeNode node1 = new DefaultMutableTreeNode();
//定義樹結點
JTree example3 = new JTree (node1);
//用此樹結點做參數調用 JTree的構造函數創建含有一個根結點的樹
//構造函數:JTree(TreeNode root)(同上,只是TreeNode非空)
//用一個根結點創建樹
DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("Color");
JTree example4 = new JTree (node2);//結點不可以顏色,默認為白面黑字
example4.setBackground (Color.lightGray);
//構造函數:JTree(TreeNode root, boolean asksAllowsChildren)
(同上,只是TreeNode又有不同)//使用DefaultMutableTreeNode類先用一個根結點創建樹,
設置為可添加孩子結點,再添加孩子結點DefaultMutableTreeNode color = new DefaultMutableTreeNode
("Color", true);DefaultMutableTreeNode gray = new DefaultMutableTreeNode
("Gray");color.add (gray);
color.add (new DefaultMutableTreeNode ("Red"));
gray.add (new DefaultMutableTreeNode ("Lightgray"));
gray.add (new DefaultMutableTreeNode ("Darkgray"));
color.add (new DefaultMutableTreeNode ("Green"));
JTree example5 = new JTree (color);
//構造函數:JTree(TreeNode root)(同上,只是TreeNode非空)
//通過逐個添加結點創建樹
DefaultMutableTreeNode biology = new DefaultMutableTreeNode ("Biology");
DefaultMutableTreeNode animal = new DefaultMutableTreeNode ("Animal");
DefaultMutableTreeNode mammal = new DefaultMutableTreeNode ("Mammal");
DefaultMutableTreeNode horse = new DefaultMutableTreeNode ("Horse");
mammal.add (horse);
animal.add (mammal);
biology.add (animal);
JTree example6 = new JTree (biology);
horse.isLeaf();//if this node allows children.
horse.isRoot();//true if this node is the root of its tree
//構造函數:JTree(TreeModel newModel)
//用DefaultMutableTreeNodel類定義一個結點再用這個結點做參數定義一個用DefaultTreeMode
//創建一個樹的模型,再用JTree的構造函數創建一個樹
DefaultMutableTreeNode root = new DefaultMutableTreeNode ("Root1");
DefaultMutableTreeNode child1 = new DefaultMutableTreeNode ("Child1");
DefaultMutableTreeNode child11 = new DefaultMutableTreeNode ("Child11");
DefaultMutableTreeNode child111 = new DefaultMutableTreeNode ("Child111");
DefaultMutableTreeNode child1111 = new DefaultMutableTreeNode ("Child1111");
root.add (child1); child1.add (child11);
child11.add (child111);child111.add(child1111);
DefaultTreeModel model = new DefaultTreeModel (root);
JTree example7 = new JTree (model);
JPanel panel = new JPanel();
panel.setLayout (new BoxLayout (panel, BoxLayout.X_AXIS));
panel.setPreferredSize (new Dimension (700, 400));
panel.add (new JScrollPane (example1));//JTree必須放在JScrollPane上
panel.add (new JScrollPane (example2));
panel.add (new JScrollPane (example3));
panel.add (new JScrollPane (example4));
panel.add (new JScrollPane (example5));
panel.add (new JScrollPane (example6));
panel.add (new JScrollPane (example7));
JFrame frame = new JFrame ("JTreeDemo");
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.setContentPane (panel);
frame.pack();
frame.show();
}
}
以上就是Swing中JTree組件的作用是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。