【问题标题】:JTree For-Loop Array Syntax [duplicate]JTree For-Loop 数组语法 [重复]
【发布时间】:2013-07-20 18:49:10
【问题描述】:

对于从数组中读取数据并将其添加到 JTree 的 for 循环的语法有困难。

public void init()
{   final String section1 = "JAVA";
    String[] sections = new String[]{ "Tutorial6", "Tutorial5", "Tutorial4", "Tutorial3", "Tutorial2", "Tutorial1" };

String contents[][] = {
        {"content1a", "content1b"},
        {"content2a", "content2b"},
        {"content3a", "content3b"}
    };  

    title = new DefaultMutableTreeNode(section1);

    for (int i=0; i<sections.length; i++)
    {   selection = new DefaultMutableTreeNode(( sections[i]));

        selection.insert(new DefaultMutableTreeNode((contents[i])),0);



        //title.insert(selection,0);
    }

添加部分工作正常,但向这些部分添加节点是个问题。如何让 for 循环工作,以便在解析 for 循环时将具有内容名称的节点添加到相关部分??

这是不工作的代码:

    selection.insert(new DefaultMutableTreeNode((contents[i])),0);

谢谢!!

【问题讨论】:

标签: java swing for-loop jtree


【解决方案1】:

创建一个 TreeNode 实际上是一个单一的节点。因此,将数组传递给节点构造函数不会创建完整的节点列表。为了实现你想要的,添加一个嵌套的for循环。

String contents[][] =
{
    {"content1a", "content1b"},
    {"content2a", "content2b"},
    {"content3a", "content3b"}
};  

title = new DefaultMutableTreeNode(section1);

for (int i=0; i < sections.length; i++)
{
    selection = new DefaultMutableTreeNode(sections[i]);
    for (int k = 0; k < contents[i].length; ++k)
    {
        selection.add(new DefaultMutableTreeNode(contents[i][k]));
    }
    title.add(selection);
}

【讨论】:

  • 是的,差不多。你的错误是 content[i] 而不是正确的 content[i][j]。
  • 非常感谢Martijn,现在就试试!!
  • 我有一个 ArrayOutOfBoundsException :/
  • 已修复!!内容字符串需要 6 组值。再次感谢 Martijn :)
  • 啊,是的,确实。你说的对。我没看到。但我的回答也是对的。所以你可以通过点击我的分数下的勾来接受我的回答。
猜你喜欢
  • 2016-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-10
  • 1970-01-01
  • 1970-01-01
  • 2016-07-05
相关资源
最近更新 更多