Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JTree没有出现_Java_Swing_Jtree - Fatal编程技术网

Java JTree没有出现

Java JTree没有出现,java,swing,jtree,Java,Swing,Jtree,为什么JTree没有出现?这是我的密码: initComponents(); JTree treeView; DefaultMutableTreeNode top = new DefaultMutableTreeNode("myBooks"); DefaultMutableTreeNode category = new DefaultMutableTreeNode("Drama"); DefaultMutableTreeNode book1 = new D

为什么JTree没有出现?这是我的密码:

    initComponents();
    JTree treeView;
    DefaultMutableTreeNode top = new DefaultMutableTreeNode("myBooks");
    DefaultMutableTreeNode category = new DefaultMutableTreeNode("Drama");
    DefaultMutableTreeNode book1 = new DefaultMutableTreeNode("Macbeth");
    DefaultMutableTreeNode book2 = new DefaultMutableTreeNode("Hamlet");
    category.add(book1);
    category.add(book2);
    top.add(category);
    treeView = new JTree(top);
    JScrollPane pane = new JScrollPane(treeView);
    mainPanel.add(pane);

给你的
JTree
一个背景,看看它在屏幕上占据了多少空间。您还可以在swing应用程序上使用CTRL+SHIFT+F1,并在控制台中查看不同组件的大小、位置和所有内容


我的猜测是,
mainPanel
没有一个好的布局,或者jtree应该有一个合适的首选大小集。

为了扩展Snicolas的回答(对他来说是1+),您似乎在将JScrollPane添加到主面板,而不考虑使用的布局管理器。我猜您的GUI使用的是GroupLayout,如果是这样,我建议您使用更为用户友好的布局管理器。另外,在顶级窗口上调用pack和setVisible(true)之后是否添加了窗格JScrollPane?如果是这样,您需要重新验证并重新绘制接收新组件的容器。

@Snicolas,我将背景设置为红色,但没有解决问题。树景。挫折地(颜色。红色);这只是帮助了解发生了什么的方法。还可以尝试更改
主面板使用的布局管理器,正如@Hovercraft建议的那样。我觉得说这个有点尴尬,因为你刚刚从3位GUI专家那里得到了一些好的提示,但是。。为了更快地获得更好的帮助,请发布一条“您可以使用CTRL+SHIFT+F1…”妙极了!你是从哪里捡到智慧之珠的?你是对的,问题在于团队布局。一旦更改为FlowLayout,JTree就出现了。谢谢,不客气,但我必须注意的是,我很少使用FlowLayout,因为它是最薄弱的布局管理器之一。比如说,它提供的定制较少。边界布局可能更适合这里