2012-12-09 25 views
4

我想在的borderlayout(西部)设置首选宽度为JScrollPane的。但它不工作如何设置preferedsize JTree的JScrollPane的中

请看看我的示例代码

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

但显示默认宽度。

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

+1

1)首选高度,请参见['JTree.setVisibleRowCount(int)'](http://docs.oracle.com/javase/7/docs/api/javax/swing/JTree.html#setVisibleRowCount% 28int%29)。 2)*“关于 克里希纳”*不要在问候语中使用四行问题。 –

回答

2

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

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

解决方案:在添加它之前,在JScrollPane上调用setPreferredSize。这也是在official tutorial中完成的,大约我唯一能想到的是,称这种方法是可以接受的。

+0

感谢Robin..it现在正在工作..非常有帮助.. – krish131

+0

@KrishnareddyNandyala如果解决方案帮助您解决问题,请接受答案。 – Amarnath

+1

@Che yaa ..我完成了它..现在我不知道这一个。 – krish131

相关问题