Java 当节点展开时,JTree会扩大宽度

Java 当节点展开时,JTree会扩大宽度,java,swing,width,jtree,expand,Java,Swing,Width,Jtree,Expand,我对JTree有一个非常棘手的问题 我用一个自写模型实现了一个JTree(它是从TreeModel扩展而来的) 所以我把它添加到一个JPanel中,这个JPanel添加到一个JFrame中 不,我遇到了这个问题:我启动帧,如果我展开一个节点,JTree的宽度将扩大到显示叶子所需的宽度 我试着设置: fileTree.setMaximumSize(width, height); 但它失败了,我还尝试将JTree以最大大小嵌入到JScrollPanel中,这也失败了 JTree仍在调整它所需的宽度

我对JTree有一个非常棘手的问题

我用一个自写模型实现了一个JTree(它是从TreeModel扩展而来的)

所以我把它添加到一个JPanel中,这个JPanel添加到一个JFrame中

不,我遇到了这个问题:我启动帧,如果我展开一个节点,JTree的宽度将扩大到显示叶子所需的宽度

我试着设置:

fileTree.setMaximumSize(width, height);
但它失败了,我还尝试将JTree以最大大小嵌入到JScrollPanel中,这也失败了

JTree仍在调整它所需的宽度

所以我现在试了两天,没有找到任何东西,所以如果你们中有人能帮助我,我将不胜感激


谢谢

所描述的效果是
JPanel
的默认
FlowLayout
的特征。单击左侧面板时可以看到更改,如下所示


附录:如图所示,
GridLayout
允许组件展开;它在
setVisibleRowCount()
后面跟着
pack()

的情况下工作得特别好。我必须将此JPanel嵌入到JSplitPane中。我必须将此JPanel嵌入到具有GridBagLayout的JSplitPane中。我现在尝试启动一个默认的JFrame,只嵌入了我的JPanel,它可以工作了。但是它在JSplitPane的框架中不起作用…永远不要使用任何setXXSize-即使在最好的情况下,它们也弊大于利;-)在LayoutManager上面随机堆积LayoutManager而不了解它们的行为是不完全有效的(正如您注意到的:-),也就是说,JScrollPane中的JTree不应该使滚动窗格增加其大小(因为滚动窗格是validationRoot),而只是根据需要显示滚动条。为了更快地获得更多帮助,请展示一个小的(!)可运行示例来演示问题对不起,你能告诉我你是如何解决问题的吗?因为我使用了边界布局,并在西部插入了JTree,但我也遇到了你同样的问题,这有点难看。@user2896152:Benni有一段时间没露面了;如果你发布了一个依赖于的新问题,请在此处回复。我在此处创建了另一个问题
fileTree.setMaximumSize(width, height);