添加到边框布局时无法在 JPanel 中左对齐 JLabel,这



这似乎是一件简单的事情,但我无法让它工作。

我有一个BorderLayout.我想将顶部用于标题栏。我想添加一个带有标签、按钮和其他组件的JPanel。但是,边框布局的PAGE_START部分不会左对齐面板。这是情况,在我尝试设置对齐的地方有评论。

我注意到,当我不向边框布局添加面板,而只是直接写入JLabel时,默认情况下它会左对齐。

不过,这不是我想要的,因为我计划在BorderLayout.PAGE_START标题区域中水平放置一个BoxLayout.X_AXIS。似乎是一件合理的事情?

静态方法的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);
}

即使我告诉面板将标签左对齐,它也不会显示为左对齐。

有谁知道我做错了什么?

默认情况下,JPanel 使用具有"中心"对齐方式的FlowLayout

如果您希望组件"左"对齐,则需要将面板上的布局设置为使用具有"左"对齐的FlowLayout

阅读FlowLayoutAPI,了解用于设置对齐方式的正确构造函数。

或者,您也可以阅读有关如何使用 FlowLayut 的 Swing 教程,该教程提供了构造函数和有效值来指定对齐方式。

最新更新