
风某提供两种方式:
第一种是在TreeView的AfterSelect事件中, TreeViewEventArgs e的这个e具备了Node的属性,也就是说这个eNodeNodes就是被选中的节点的子节点组合。
第二种方式你可以使用treeView1SelectedNode的Nodes属性,也就是thistreeView1SelectedNodeNodes,就是TreeView的被选中的树节点子节点了
首先用Eclipse设置好界面
2
设计出来的运行界面如下图:
3
当选中树中的某个节点时,节点值设置到了文本框中, 实现效果如下:
4
主要功能代码如下:
END
全部功能代码
import javaawtEventQueue;
import javaxswingJFrame;
import javaxswingJPanel;
import javaxswingJTree;import javaxswingborderEmptyBorder;
import javaxswingeventTreeSelectionEvent;
import javaxswingeventTreeSelectionListener;
import javaxswingtreeDefaultMutableTreeNode;
import javaxswingJScrollPane;
import javaxswingJTextField;
public class AppDemo extends JFrame {
private JPanel contentPane;
private JTextField textField;
public static void main(String[] args) {
EventQueueinvokeLater(new Runnable() {
public void run() {
try {
AppDemo frame = new AppDemo();
framesetVisible(true);
} catch (Exception e) {
eprintStackTrace();
}
}
});
}
public AppDemo() {
setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
setTitle("测试");
contentPane = new JPanel();
contentPanesetBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPanesetLayout(null);
JScrollPane scrollPane = new JScrollPane();
scrollPanesetBounds(30, 20, 196, 217);
contentPaneadd(scrollPane);
final JTree tree = new JTree();
scrollPanesetViewportView(tree); textField = new JTextField();
textFieldsetBounds(252, 35, 172, 27);
contentPaneadd(textField);
treeaddTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
DefaultMutableTreeNode note = (DefaultMutableTreeNode) treegetLastSelectedPathComponent();
String name = notetoString();//获得这个结点的名称
textFieldsetText(name);
}
});
}
}
由于是链式结构,所以很容易实现
找到根的路径,只需要从目标节点一路寻父节点到根即可
至于遍历,其实三种遍历都是一个意思,只是看什么时候标记访问节点而已
从根开始整个遍历过程每一步遵循如下方式:
1若当前节点没有被访问
1)标记访问该节点
2)遍历它的左子树
3)若为先根遍历,输出该节点
2若当前节点已访问
1)如果它有右儿子节点并未被访问,遍历右子树若此时是中根遍历,输出该节点
2)如果它没有右儿子节点或者右儿子已访问,返回遍历该节点的父亲节点若此时为后根遍历,输出该节点若当前节点已为根节点,结束遍历过程
它的算法思想应该是
1,以一指针指向该叶子结点并向上(父结点)找,把父节点入栈(方便输出路径)
2,把指针指向父节点,重复上面的过程,直到节点的父节点为空
3,依次出栈输出信息,路径就出来了
(注:此二叉树的节点应包括父指针,左右指针,数据域)
就这么多吧! 要学习程序,就得自己尝试写,写多了就会了
还有什么不懂的可以给我留言 !!
列表可以用listview控件,如果有多行的话可以用循环,这里只用一行进行说明:
ListViewItem lv = new ListViewItem(); //先实例化
lvText =“”; 一行的第一个元素,双引号里面填写元素
lvSubItemsAdd(); 一行的第二个元素,括号号里面填写元素
lvSubItemsAdd(); 一行的第二个元素,括号号里面填写元素,以此类推
listViewnameItemsAdd(lv); 将实例化添加到listview里面, listViewname为所用控件的名字
以上就是关于在c#中treeview 怎么获取选中节点的子节点全部的内容,包括:在c#中treeview 怎么获取选中节点的子节点、Java Swing JTree怎么获取选中节点值、程序设计 求二叉树上结点的路径及二叉树的三种非递归遍历等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)