我对布局非常满意,对于我的应用程序,我想在面板的左下角放置一个带有填充的面板,但是我不确定要使用哪种布局。
我尝试将BorderLayout与水平对齐方式结合使用,以将面板放置在角落,但未产生预期的结果。我的代码如下:
final JLabel label = new JLabel();
label.setBorder(new EmptyBorder(20, 20, 20, 20));
label.setHorizontalAlignment(JLabel.LEFT);
label.setPreferredSize(new Dimension(100,100));
label.setBackground(Color.WHITE);
label.setOpaque(true);
add(label, BorderLayout.SOUTH);
(外部类扩展了JFrame)
下图详细说明了我想要的东西以及我拥有的东西。
有什么技巧可以实现这种布局?看起来很简单,但是我还是新手
最佳答案
您可以使用SpringLayout
。
这很棘手,但是会成功的。
SpringLayout springLayout = new SpringLayout();
Container cont = getContentPane();
cont.setLayout(springLayout);
JLabel label = new JLabel("New label");
springLayout.putConstraint(SpringLayout.WEST, label, 20, SpringLayout.WEST, cont);
springLayout.putConstraint(SpringLayout.SOUTH, label, -10, SpringLayout.SOUTH, cont);
cont.add(lblNewLabel);
Spring Layout允许您设置组件侧面与框架之间的距离,并最终以动态方式设置其位置(调整大小后该位置将相对于框架保留)
这是输出: