setAlignmentY不在BorderLayout中居中JLabel

Jeh*_*ehu 8 java swing jlabel layout-manager

新的java和全新的网站.我有一个JLabel添加到BorderLayout的中心面板.我希望JLabel能够集中在小组中; setAlignmentX似乎有效,但setAlignmentY没有(标签出现在面板的顶部).这是代码:

centerPanel = new JPanel();
centerPanel.setLayout(new BoxLayout(centerPanel,BoxLayout.Y_AXIS));

JLabel label = new JLabel("This should be centered");
label.setAlignmentX(Component.CENTER_ALIGNMENT);
label.setAlignmentY(Component.CENTER_ALIGNMENT);
centerPanel.add(label);

contentPane.add(centerPanel, BorderLayout.CENTER);
Run Code Online (Sandbox Code Playgroud)

我也尝试过label.setVerticalAlignment(CENTER);但无济于事.我已经在API和Java教程中,在这个网站上以及通过谷歌搜索寻找答案.谢谢!

Gre*_*Day 19

你很亲密,试试这个:

public static void main(String[] args)
{
    JFrame contentPane = new JFrame();
    JPanel centerPanel = new JPanel();
    centerPanel.setLayout(new BorderLayout());

    JLabel label = new JLabel("This should be centered");
    label.setHorizontalAlignment(SwingConstants.CENTER);
    centerPanel.add(label, BorderLayout.CENTER);

    contentPane.add(centerPanel, BorderLayout.CENTER);
    contentPane.pack();
    contentPane.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)

Java中GUI编程的众多乐趣之一.如果我是诚实的话,我宁可捅一眼.

  • +1用于对齐,也可在构造函数中使用; -0.01用于眼外伤.:-) (2认同)