新的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教程中,在这个网站上以及通过谷歌搜索寻找答案。谢谢!
答案 0 :(得分: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);
}
Java中GUI编程的众多乐趣之一。如果我是诚实的话,我宁可捅一眼。
答案 1 :(得分:0)
我尝试垂直居中对齐JButton
,但我有问题,它被拉伸了。在摆弄之后我发现它有效:
JPanel jpTop = new JPanel(new BorderLayout());
jbStop = new JButton("Cancel");
JPanel extraPanel = new JPanel();
extraPanel.setLayout(new BoxLayout(extraPanel, BoxLayout.X_AXIS));
extraPanel.setAlignmentY(Component.CENTER_ALIGNMENT);
extraPanel.add(jbStop);
jpTop .add(extraPanel, BorderLayout.EAST);
当然它也适用于JLabel。