0

ツリーを1つのタブに追加しようとしています:

Tab tmp = new Tab();
TreeNode root = new  DefaultTreeNode("root",null);
TreeNode test = new DefaultTreeNode("test",root);
tmp.getChildren().add((UIComponent)root);

誰でも私を助けることができますか?

4

1 に答える 1

0

アコーディオンパネル - モデルを使用することをお勧めします

アコーディオンは、モデルによってサポートされる動的な数のタブを表示できます。タブはオンザフライで生成されるため、タブの追加/削除も簡単に実装できます。

例を見てください... INMO は、タスクを実装する方法です... (はるかに簡単で、プライムフェイスがショーケースで実装する方法です)

与えられた例を展開するには

タブに追加

<p:tree value="#{player.root}" var="node" id="tree">  
    <p:treeNode id="treeNode">  
        <h:outputText value="#{node}" id="lblNode"/>  
    </p:treeNode>  
</p:tree> 

プレーヤークラスに追加します...

private TreeNode root;  

public initTree() {  
    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);  
}  

public TreeNode getRoot() {  
    return root;  
}  

これがplayer.javaのソースです

Player.java

編集

ループ内の p:tree に関する問題 (ui:repeat、p:dataTable、...)を見た後

問題 3640: ループ (ui:repeat、p:tabView、...) 内で p:tree を使用して状態を保存中に NullPointerException が発生する

この機能に関して未解決のバグがあるようです...

于 2012-04-16T07:26:54.987 に答える