4

我正在尝试在borderlayout(WEST)中为jscrollpane设置首选宽度。但它不起作用

请查看我的示例代码

JTree tree=new JTree(root);  
JScrollPane jsp=newJScrollPane(tree);
jsp.setBounds(0,0,200,100);
Jframe.add(jsp,BorderLayout.WEST);

但它显示默认宽度。

或者,我尝试为 JTree 设置首选大小,它工作正常但 jscrollpane 无法正常工作。请帮助我。

4

1 回答 1

3

布局管理器根据组件的大小(最小/最大/首选)确定组件的位置。因此,您的调用setBounds将被忽略,而是BorderLayout将确定它放置您的组件的位置。

通常这种机制工作得很好。a 的问题JScrollPane在于它的大小提示可能与您想要的行为不同步(由于滚动窗格可以有滚动条,因此它可以确定自己的大小)。

setPreferredSize解决方案:在JScrollPane添加之前调用。这也是在官方教程中完成的,也是我唯一一次想到调用这个方法是可以接受的。

于 2012-12-09T07:50:54.637 回答