JComponent:如何设置最大宽度?

时间:2013-01-07 16:09:52

标签: java swing size jcomponent

我需要将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来实现,或者我应该使用什么布局?

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:3)

使用GroupLayout。它有一些最好的尺寸控制。 GroupLayout看起来有点令人生畏,但提供的示例非常好。如果您想允许用户调整屏幕大小,则特别有用。