我需要使 JComponent
的宽度为 300
或更小,但高度应该是可变的(取决于 JComponent
的内容) .
首先,我尝试使用
myComponent.setMaximumSize(300, 9999);
但我发现这个方法完全没有效果,组件仍然会根据其内容进行扩展(至少我看不到任何效果)。
然后我尝试使用
myComponent.setPreferredSize(300, (int)myComponent.getPreferredSize().getHeight());
然后,width 变为 300 且不小于 300。这并不完美,但可以接受。但是,现在,当组件的内容发生变化时,大小不会改变!这是 Not Acceptable 。
我试图找到只影响首选宽度的方法,并将高度保留为“默认值”,但我没有找到那种方法。
我尝试将高度设置为 0 或 -1:无效。
如何实现?
UPD:请看图:http://goo.gl/3Hp59这就是我已经实现的,但我使用了 setPreferredSize()
,这很糟糕,正如我已经意识到的,谢谢。
请帮我找出正确的方法:
目前我使用GridBagLayout
。我需要使右栏的宽度 <= 300。(例如,左栏的宽度 <= 200)如何使用 GridBagLayout
实现这一点,或者我应该改用什么布局?
最佳答案
使用GroupLayout .它有一些最好的尺寸控制。 GroupLayout 看起来有点吓人,但提供的示例非常好。如果您希望允许用户调整屏幕大小,则特别有用。
关于java - JComponent:如何设置最大宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14199663/