我需要将JComponent
的宽度设为300
或更低,但高度应该是可变的(取决于JComponent
的内容)。
首先,我尝试使用
myComponent.setMaximumSize(300, 9999);
但我发现这种方法完全没有效果,组件仍会根据其内容进行扩展(至少我看不到任何效果)。
然后我尝试使用
myComponent.setPreferredSize(300, (int)myComponent.getPreferredSize().getHeight());
然后,宽度变为300且不小于300.这不是完美的,但可以接受。但是,现在,当组件的内容发生变化时,尺寸不会改变!这是不可接受的。
我试图找到影响首选宽度的方法,并将高度保留为“默认”,但我没有找到那种方式。
我尝试将高度设置为0或-1:无效。
如何实现?
UPD:请看一下图片:http://goo.gl/3Hp59这就是我已经实现的内容,但我使用的是setPreferredSize()
,这是不好的,因为我已经意识到了,谢谢。
请帮我找出正确的方法:
目前我使用GridBagLayout
。我需要使右列的宽度<= 300.(并留下一个,比方说,&lt; = 200)如何使用GridBagLayout
来实现,或者我应该使用什么布局?
答案 0 :(得分:3)
:使用BoxLayout
BoxLayout接受Mix,
Max
和PreferredSize
don't set Mix,
Max
and PreferredSize
,每个JComponent(不包括空JPanel
(Grapics/2D
)和JTable
中的JScrollPane
)都可以正常返回{ {1}}本身。
答案 1 :(得分:3)
使用GroupLayout。它有一些最好的尺寸控制。 GroupLayout看起来有点令人生畏,但提供的示例非常好。如果您想允许用户调整屏幕大小,则特别有用。