日期:2011-03-22 16:16:00 来源:本站整理
<b>java树型构造</b>[Java编程]
本文“<b>java树型构造</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
利用一个JTree可以简单地像下面这样表示:
add(new JTree(
new Object[] {"this", "that", "other"}));
这个程序显示了一个原始的树状物.树状物的API是非常宏大的,但是——当然是在Swing中的宏大.它表明我们可以做有关树状物的任何事,但更复杂的任务大概需求不少的研究和试验.幸运的是,在库中供应了一个让步:“默许的”树状物组件,普通那是我们所需求的.因此大大都的时间我们可以操纵这些组件,并且只在特别的情形下我们需求更深化的研究和理解.
下面的例子利用了“默许”的树状物组件在一个程序片中显示一个树状物.当我们按下按钮时,一个新的子树就被增添到当前选中的结点下(假如没有结点被选中,就用根结节):
最重要的类就是分支,它是一个工具,用来获得一个字符串数组并为第一个字符串成立一个DefaultMutableTreeNode作为根,别的在数组中的字符串作为叶.然后node()办法被调用以产生“分支”的根.树状物类包含一个来自被制造的分支的二维字符串数组,以及用来统计数组的一个静态中止i.DefaultMutableTreeNode对象掌握这个结节,但在屏幕上表示的是被JTree和它的相关(DefaultTreeModel)情势所掌握.注意当JTree被增添到程序片时,它被封装到JScrollPane中——这就是它全部供应的自动转动.//: Trees.java // Simple Swing tree example. Trees can be made // vastly more complex than this. package c13.swing; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.tree.*; // Takes an array of Strings and makes the first // element a node and the rest leaves: class Branch { DefaultMutableTreeNode r; public Branch(String[] data) { r = new DefaultMutableTreeNode(data[0]); for(int i = 1; i < data.length; i++) r.add(new DefaultMutableTreeNode(data[i])); } public DefaultMutableTreeNode node() { return r; } } public class Trees extends JPanel { String[][] data = { { "Colors", "Red", "Blue", "Green" }, { "Flavors", "Tart", "Sweet", "Bland" }, { "Length", "Short", "Medium", "Long" }, { "Volume", "High", "Medium", "Low" }, { "Temperature", "High", "Medium", "Low" }, { "Intensity", "High", "Medium", "Low" }, }; static int i = 0; DefaultMutableTreeNode root, child, chosen; JTree tree; DefaultTreeModel model; public Trees() { setLayout(new BorderLayout()); root = new DefaultMutableTreeNode("root"); tree = new JTree(root); // Add it and make it take care of scrolling: add(new JScrollPane(tree), BorderLayout.CENTER); // Capture the tree's model: model =(DefaultTreeModel)tree.getModel(); JButton test = new JButton("Press me"); test.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ if(i < data.length) { child = new Branch(data[i++]).node(); // What's the last one you clicked? chosen = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent(); if(chosen == null) chosen = root; // The model will create the // appropriate event. In response, the // tree will update itself: model.insertNodeInto(child, chosen, 0); // This puts the new node on the // currently chosen node. } } }); // Change the button's colors: test.setBackground(Color.blue); test.setForeground(Color.white); JPanel p = new JPanel(); p.add(test); add(p, BorderLayout.SOUTH); } public static void main(String args[]) { Show.inFrame(new Trees(),200,500); } } ///:~
JTree通过它自己的模子来掌握.当我们改正这个模子时,模子产生一个事件,招致JTree对可以瞥见的树状物完成任何必要的进级.在init()中,模子由调用getModel()办法所捕捉.当按钮被按下时,一个新的分支被成立了.然后,当前挑选的组件被找到(假如没有挑选就是根)并且模子的insertNodeInto()办法做全部的改变树状物和招致它进级的工作.
大大都的时刻,就像上面的例子一样,程序将给我们在树状物中所需求的一切.不过,树状物拥有力气去做我们可以想像到的任何事——在上面的例子中我们处处都可看到“default(默许)”字样,我们可以代替我们自己的类来获得差别的行动.但请注意:几近全部这些类都有一个具大的接口,因此我们可以花一些时间勤奋去理解这些扑朔迷离的树状物.
以上是“<b>java树型构造</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:桌面颜色
- ·下一篇文章:java的滑杆和进度指导条
- ·中查找“<b>java树型构造</b>”更多相关内容
- ·中查找“<b>java树型构造</b>”更多相关内容
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论