我只是想制作一个带有两个标签的JPanel。第一个应位于屏幕的中心,另一个应位于面板的左侧。不幸的是,这根本不会发生。
以下是代码:
class Panel extends JPanel {
public Panel() {
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
JLabel title = new JLabel("Label 1");
title.setAlignmentX(CENTER_ALIGNMENT);
add(title);
//This following three lines can be commented out for different behaviour
JLabel source = new JLabel("Label 2");
source.setAlignmentX(LEFT_ALIGNMENT);
add(source);
setAlignmentX(CENTER_ALIGNMENT);
}
}
因此,如果我们注释掉3行,谈论源“标签1”确实出现在屏幕的中心。
然而,如果我们将它们添加回来,那么一切都会变得不稳定。标签1不再居中,标签2实际上位于标签1的右侧。
这里发生了什么?
其他失败的尝试:
setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
Box box = Box.createVerticalBox();
JLabel title = new JLabel("TITLE:");
title.setAlignmentX(Component.CENTER_ALIGNMENT);
box.add(title);
JLabel title2 = new JLabel("TITLE2:");
title2.setAlignmentX(Component.LEFT_ALIGNMENT);
box.add(title2);
add(box, BorderLayout.NORTH);