3

我需要将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。(左一个,比如说,<= 200)如何使用 来实现GridBagLayout,或者我应该使用什么布局?

4

2 回答 2

3
于 2013-01-07T16:13:51.247 回答
3

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

于 2013-01-07T18:33:12.977 回答