0

我试图让我的 Swing 组件既不能垂直缩放,也不能水平缩放,或者反过来(换句话说,我只希望它们有一个自由轴。在某些情况下它们可以水平缩放,也可以垂直缩放其他)。

有什么优雅的方法可以做到这一点,而无需添加大量的 JPanel?

LE:我宁愿不对我收到的已经制作好的布局进行任何重大修改。

我希望对这个问题有一个神奇、简单的解决方法,比如 JTextField.don'tScaleVerticallyIdiot();

4

4 回答 4

3

您需要使用适当的布局管理器。

最强大的两个是MigLayoutFormLayout。我个人更喜欢 MigLayout,因为它更容易直接使用,而 FormLayout 仅适用于像WindowBuilder这样的窗口设计器。

两者具有相似的特征特征。

使用 MigLayout,您可以指定是否允许组件在特定轴上增长,如果允许,应该为其提供什么样的权重(与其他组件的额外空间相反)。

于 2012-09-11T21:35:49.550 回答
2

你没有提到LayoutManager你目前正在使用哪个。

就个人而言,我会使用GridBagLayout你想要实现的目标。

于 2012-09-11T22:23:09.790 回答
2

我认为您可以通过将BorderLayout设置为容器的LayoutManager来实现这一点,因此:

于 2012-09-11T21:35:13.310 回答
1

我希望它是单行,高度和水平缩放与拖动框架一样多,但不添加多个 JPanel。

我认为BoxLayout可以PAGE_AXIS做到这一点。

于 2012-09-12T13:04:29.137 回答