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);

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

最佳答案

您接近了,请尝试以下操作:

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);
}

Java GUI编程的众多乐趣之一。如果我说实话,我宁愿睁大眼睛。

10-01 13:53