当前位置: 首页 > 面试题库 >

如何创建动态树?

朱起运
2023-03-14
问题内容

我在使用primefaces树实现实现动态树结构时遇到了一些麻烦。在primeface提供的展示柜中,代码的结构如下所示。但是,这是非常静态的。我试图弄清楚如何处理从数据库中获取的数据,在编译时树的深度是未知的。

我以为我可能需要某种递归方法来实现此目的,但我无法完全理解实现的样子。

有什么想法吗?

以下是primefaces的示例代码

private TreeNode root;
private TreeNode selectedNode;

public TreeBean() {
    root = new DefaultTreeNode("Root", null);
    TreeNode node0 = new DefaultTreeNode("Node 0", root);
    TreeNode node1 = new DefaultTreeNode("Node 1", root);
    TreeNode node2 = new DefaultTreeNode("Node 2", root);

    TreeNode node00 = new DefaultTreeNode("Node 0.0", node0);
    TreeNode node01 = new DefaultTreeNode("Node 0.1", node0);

    TreeNode node10 = new DefaultTreeNode("Node 1.0", node1);
    TreeNode node11 = new DefaultTreeNode("Node 1.1", node1);

    TreeNode node000 = new DefaultTreeNode("Node 0.0.0", node00);
    TreeNode node001 = new DefaultTreeNode("Node 0.0.1", node00);
    TreeNode node010 = new DefaultTreeNode("Node 0.1.0", node01);

    TreeNode node100 = new DefaultTreeNode("Node 1.0.0", node10);
}

问题答案:
private TreeNode root;

private TreeNode selectedNode;

public TreeBean() {
root = new DefaultTreeNode("Root", null);
List rootNodes<Employee> = SearchDao.getRootNodes();

Iterator it = rootNodes.iterator();
while (it.hasNext()) {

TreeNode node1 = new DefaultTreeNode(**it.next()**, root);
    **/* in place of it.next() I need to display empName. When I click on empName, I need to get the Id(Pkey). */**

}

}

public TreeNode getRoot() {
return root;
}

public TreeNode getSelectedNode() {
return selectedNode;
}

public void setSelectedNode(TreeNode selectedNode) {
this.selectedNode = selectedNode;
}



public void addChildNode(ActionEvent actionEvent) {
System.out.println("Selected Node: "+getSelectedNode().toString());
TreeNode newNode = new DefaultTreeNode("Node New", getSelectedNode());
getSelectedNode().setExpanded(true);
}
public void addTopicBelow(ActionEvent actionEvent){
TreeNode newNode = new DefaultTreeNode("Node New", getSelectedNode().getParent());
}
public void deleteNode(ActionEvent actionEvent){
 System.out.println("Node to be deleted: "+getSelectedNode().toString());
 //getSelectedNode().
}


 类似资料:
  • 我正在使用hystrix在我的springboot服务中实现断路器概念。我在需要在发生阈值故障数的情况下节流外部服务调用的方法上使用的HystrixCommand注释如下所示: 现在,myHystrixMethod驻留的服务由不同的客户端调用。根据调用服务的客户机的类型,有一个逻辑来调用为该特定客户机指定的后端服务。 我想做的是将特定客户机调用的所有线程(请求)注册到它自己的hystrix线程池中

  • 问题内容: 我需要旋转div并停止在特定位置(该值将从服务器接收)。 我尝试使用本机JS进行旋转和停止,但它占用了我的CPU大量时间。 我可以旋转CSS动画,但是我需要创建一个类,该类将动态描述停止动画的位置。就像是 提前致谢 问题答案: 好吧,我认为动态创建 它们 并不容易, 因为它们必须是硬编码的,所以它们不灵活。 过渡稍微容易一些,因为它们可以优雅地响应JavaScript进行的CSS更改。

  • 我正在创建一个Android应用程序,为了使其工作,我需要动态创建一个多维(2D): 我把代码留给您,以便让您理解它是如何被排序的,这样您就可以清除它来添加这个特性(可能我不仅想要代码本身的装饰,还想要对其中的内容有一个几乎详细的解释,我会非常感谢的! http://imgur.com/a/ajyoe

  • 我有一个按钮和一个文本框。当我在textbox中放置一个值并单击此按钮时,将创建一个新按钮,该值填充在textbox中,但我希望当我再次单击Button1时,应该还有一个按钮,或者我们可以说如何移动上一个按钮的位置? 请帮我解决这个问题。提前谢了。

  • 本文向大家介绍JavaScript如何动态创建table表格,包括了JavaScript如何动态创建table表格的使用技巧和注意事项,需要的朋友参考一下 两种JavaScript动态创建table表格的方法,分享给大家,具体实现如下 方法一:最原始的方法,创建一一元素 方法二:利用table对象里面含有的函数:插入行和插入列 动态的创建和删除: 创建表格,通过输入的值: 删除行: 删除列: 完整

  • 问题内容: 我有一个可以在MongoDB和mongoose上的node.js上运行的应用程序。我的应用程序只是发送/删除/编辑表单数据,为此,我有这样的猫鼬模型: 而且效果很好! 现在,我想向表单添加一个功能,以便用户可以添加一个或多个字段来表单并在其中输入文本并发布。在客户端上创建动态功能没问题,但是我知道我的mongoose.model必须正确构造。我的问题是:如何将变量值(动态创建的表单数据