[英]Can't left align a JLabel within a JPanel when adding to a BorderLayout
这似乎是一件简单的事情,但我无法让它发挥作用。
我有一个BorderLayout
。 我想将顶部用作标题栏。 我想添加一个带有标签、按钮和其他组件的JPanel
。 但是,边框布局的PAGE_START
部分不会左对齐面板。 情况就是这样,在我尝试设置 alignment 的地方有评论。
我注意到,当我没有在边框布局中添加面板时,直接将JLabel
写入其中时,默认情况下它已离开 alignment。
不过,这不是我想要的,因为我计划将BoxLayout.X_AXIS
水平放置在BorderLayout.PAGE_START
标题区域中。 似乎是一个合理的做法?
static 方法的Container
窗格参数只是主JFrame
上的单个面板。
public static void addComponentsToPane(Container pane)
{
JLabel jlabel = new JLabel("I want to left align this inside a JPanel");
// Doesn't work: jlabel.setAlignmentX(Component.LEFT_ALIGNMENT);
JPanel jpanel = new JPanel();
//Doesn't work: jlabel.setAlignmentX(Component.LEFT_ALIGNMENT);
jpanel.add(jlabel);
pane.add(jpanel, BorderLayout.PAGE_START);
// Other parts of the BoxLayout (works fine)
JButton button = new JButton("Button 2 (CENTER)");
button.setPreferredSize(new Dimension(200, 100));
pane.add(button, BorderLayout.CENTER);
button = new JButton("Button 3 (LINE_START)");
pane.add(button, BorderLayout.LINE_START);
button = new JButton("Long-Named Button 4 (PAGE_END)");
pane.add(button, BorderLayout.PAGE_END);
button = new JButton("5 (LINE_END)");
pane.add(button, BorderLayout.LINE_END);
}
即使我告诉面板左对齐 label,它也不会出现左对齐。
有谁知道我做错了什么?
默认情况下,JPanel 使用带有“中心”alignment 的FlowLayout
。
如果您希望组件“左”对齐,则需要将面板上的布局设置为使用带有“左”alignment 的FlowLayout
。
阅读FlowLayout
API,了解用于设置 alignment 的正确构造函数。
或者您也可以阅读有关如何使用 FlowLayut的 Swing 教程,该教程提供了指定 alignment 的构造函数和有效值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.