我试图让我的 Swing 组件既不能垂直缩放,也不能水平缩放,或者反过来(换句话说,我只希望它们有一个自由轴。在某些情况下它们可以水平缩放,也可以垂直缩放其他)。
有什么优雅的方法可以做到这一点,而无需添加大量的 JPanel?
LE:我宁愿不对我收到的已经制作好的布局进行任何重大修改。
我希望对这个问题有一个神奇、简单的解决方法,比如 JTextField.don'tScaleVerticallyIdiot();
我试图让我的 Swing 组件既不能垂直缩放,也不能水平缩放,或者反过来(换句话说,我只希望它们有一个自由轴。在某些情况下它们可以水平缩放,也可以垂直缩放其他)。
有什么优雅的方法可以做到这一点,而无需添加大量的 JPanel?
LE:我宁愿不对我收到的已经制作好的布局进行任何重大修改。
我希望对这个问题有一个神奇、简单的解决方法,比如 JTextField.don'tScaleVerticallyIdiot();
您需要使用适当的布局管理器。
最强大的两个是MigLayout和FormLayout。我个人更喜欢 MigLayout,因为它更容易直接使用,而 FormLayout 仅适用于像WindowBuilder这样的窗口设计器。
两者具有相似的特征特征。
使用 MigLayout,您可以指定是否允许组件在特定轴上增长,如果允许,应该为其提供什么样的权重(与其他组件的额外空间相反)。
你没有提到LayoutManager
你目前正在使用哪个。
就个人而言,我会使用GridBagLayout
你想要实现的目标。
我认为您可以通过将BorderLayout设置为容器的LayoutManager来实现这一点,因此:
我希望它是单行,高度和水平缩放与拖动框架一样多,但不添加多个 JPanel。
我认为BoxLayout
可以PAGE_AXIS
做到这一点。