Jtree-对后台传来的数据报文动态创建树节点
2016-05-19 00:00
477 查看
摘要: 对后台传来的数据报文[[态名,应用名,节点名],[态名,应用名,节点名],。。。]需要动态的进行创建树节点。
![](http://static.oschina.net/uploads/space/2016/0519/115128_hWF0_2664244.png)
//左侧树创建
public JTree refreshTreeTable(){
//eventOneInfo为传来的数据报文Vector<Vector<String>> eventOneInfo ;
//[[4,realtime,public,scd1],[4,realtime,public,scd2],[4,realtime,public_2,scd2], [4,realtime,public_3,scd2]]
if (eventOneInfo.isEmpty()) {
// 树的数据模型
treemodel = new DefaultTreeModel(root);
// 设置数据模型
jTree = new JTree();
jTree.setModel(treemodel);
jTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
jTree.setRootVisible(false);
jTree.updateUI();
}
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 0; i < eventOneInfo.size(); i++) {
Vector<String> element_one=eventOneInfo.elementAt(i);
DefaultMutableTreeNode node1_one = new DefaultMutableTreeNode(element_one.get(1).trim());
DefaultMutableTreeNode node1_two = new DefaultMutableTreeNode(element_one.get(2).trim());
DefaultMutableTreeNode node1_three = new DefaultMutableTreeNode(element_one.get(3).trim());
node1_one =searchNode(element_one.elementAt(1).trim(), root);
if (node1_one != null) {
node1_two =searchNode(element_one.elementAt(2).trim(), node1_one);
if (node1_two != null) {
&nb
3ff0
sp; node1_three =searchNode(element_one.elementAt(3).trim(), node1_two);
if (node1_three != null) {
}else {
node1_three = new DefaultMutableTreeNode(element_one.elementAt(3).trim());
treemodel.insertNodeInto(node1_three, node1_two, node1_two.getChildCount());
// ((DefaultTreeModel)jTree.getModel()).insertNodeInto(node1_three, node1_two, node1_two.getChildCount());
}
}else {
node1_two = new DefaultMutableTreeNode(element_one.elementAt(2).trim());
node1_two.add(node1_three);
treemodel.insertNodeInto(node1_two, node1_one, node1_one.getChildCount());
// ((DefaultTreeModel)jTree.getModel()).insertNodeInto(node1_two, node1_one, node1_one.getChildCount());
}
}else {
node1_one = new DefaultMutableTreeNode(element_one.elementAt(1).trim());
node1_two.add(node1_three);
node1_one.add(node1_two);
treemodel.insertNodeInto(node1_one, root, root.getChildCount());
// ((DefaultTreeModel)jTree.getModel()).insertNodeInto(node1_one, root, root.getChildCount());
}
}
}
});
// 设置数据模型
jTree = new JTree();
jTree.setModel(treemodel);
jTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
jTree.setRootVisible(false);
jTree.updateUI();
return jTree;
}
//=================================================================
//树节点查找
public DefaultMutableTreeNode searchNode(String nodeStr, DefaultMutableTreeNode m_rootNode)
{
DefaultMutableTreeNode node = null;
Enumeration e = m_rootNode.breadthFirstEnumeration();
while (e.hasMoreElements())
{
node = (DefaultMutableTreeNode) e.nextElement();
if (nodeStr.equals(node.getUserObject().toString()))
{
return node;
}
}
return null;
}
![](http://static.oschina.net/uploads/space/2016/0519/115128_hWF0_2664244.png)
//左侧树创建
public JTree refreshTreeTable(){
//eventOneInfo为传来的数据报文Vector<Vector<String>> eventOneInfo ;
//[[4,realtime,public,scd1],[4,realtime,public,scd2],[4,realtime,public_2,scd2], [4,realtime,public_3,scd2]]
if (eventOneInfo.isEmpty()) {
// 树的数据模型
treemodel = new DefaultTreeModel(root);
// 设置数据模型
jTree = new JTree();
jTree.setModel(treemodel);
jTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
jTree.setRootVisible(false);
jTree.updateUI();
}
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 0; i < eventOneInfo.size(); i++) {
Vector<String> element_one=eventOneInfo.elementAt(i);
DefaultMutableTreeNode node1_one = new DefaultMutableTreeNode(element_one.get(1).trim());
DefaultMutableTreeNode node1_two = new DefaultMutableTreeNode(element_one.get(2).trim());
DefaultMutableTreeNode node1_three = new DefaultMutableTreeNode(element_one.get(3).trim());
node1_one =searchNode(element_one.elementAt(1).trim(), root);
if (node1_one != null) {
node1_two =searchNode(element_one.elementAt(2).trim(), node1_one);
if (node1_two != null) {
&nb
3ff0
sp; node1_three =searchNode(element_one.elementAt(3).trim(), node1_two);
if (node1_three != null) {
}else {
node1_three = new DefaultMutableTreeNode(element_one.elementAt(3).trim());
treemodel.insertNodeInto(node1_three, node1_two, node1_two.getChildCount());
// ((DefaultTreeModel)jTree.getModel()).insertNodeInto(node1_three, node1_two, node1_two.getChildCount());
}
}else {
node1_two = new DefaultMutableTreeNode(element_one.elementAt(2).trim());
node1_two.add(node1_three);
treemodel.insertNodeInto(node1_two, node1_one, node1_one.getChildCount());
// ((DefaultTreeModel)jTree.getModel()).insertNodeInto(node1_two, node1_one, node1_one.getChildCount());
}
}else {
node1_one = new DefaultMutableTreeNode(element_one.elementAt(1).trim());
node1_two.add(node1_three);
node1_one.add(node1_two);
treemodel.insertNodeInto(node1_one, root, root.getChildCount());
// ((DefaultTreeModel)jTree.getModel()).insertNodeInto(node1_one, root, root.getChildCount());
}
}
}
});
// 设置数据模型
jTree = new JTree();
jTree.setModel(treemodel);
jTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
jTree.setRootVisible(false);
jTree.updateUI();
return jTree;
}
//=================================================================
//树节点查找
public DefaultMutableTreeNode searchNode(String nodeStr, DefaultMutableTreeNode m_rootNode)
{
DefaultMutableTreeNode node = null;
Enumeration e = m_rootNode.breadthFirstEnumeration();
while (e.hasMoreElements())
{
node = (DefaultMutableTreeNode) e.nextElement();
if (nodeStr.equals(node.getUserObject().toString()))
{
return node;
}
}
return null;
}
相关文章推荐
- iframe如何动态创建及释放其所占内存
- jquery 动态创建元素的方式介绍及应用
- 基于jquery的关于动态创建DOM元素的问题
- JavaScript动态创建div等元素实例讲解
- JavaScript实现动态创建CSS样式规则方案
- 动态创建的表格单元格中的事件实现代码
- 用正则表达式 动态创建/增加css style script 兼容IE firefox
- javascript 动态创建 Option选项
- sqlserver 动态创建临时表的语句分享
- JavaScript 动态创建VML的方法
- 通过JS动态创建一个html DOM元素并显示
- 简单树
- JTree设置,图标,背景色
- JTree的基本用法
- java的GUI基本组件的简单应用
- MFC动态创建状态栏
- MFC 动态类型识别思路
- JS编程艺术笔记(3)-动态创建标记
- Jtree动态加载节点
- 解决动态代码创建控件,每次到对应类都会创建控件的问题