我正在为一个我在java中制作的游戏写一个gui,我有这个代码:
private JLabel label = new JLabel("Enter New Level Name");
private JTextField field = new JTextField();
private static JButton createWorld = new JButton("Create World");
private JButton menu = new JButton("Main Menu");
public StartGame()
{
setBackground(Color.CYAN);
Box box = Box.createVerticalBox();
box.add(label);
box.add(Box.createRigidArea(new Dimension(0,10)));
box.add(field);
box.add(Box.createRigidArea(new Dimension(0,10)));
Box hor = Box.createHorizontalBox();
hor.add(createWorld);
hor.add(Box.createRigidArea(new Dimension(10,0)));
hor.add(menu);
box.add(hor);
add(box);
}
我希望此面板看起来像是右边对齐的框中的所有组件。然而,当我运行这一切时,一切都有效,除了标签与布局的其余部分不匹配。任何人都可以解释我做错了什么,或者解决它的可能方法。
继承我的问题,我知道它的模糊,但你可以看出标签偏向右边。
答案 0 :(得分:2)
您应该设置每个组件的x对齐方式。来自java tutorial:“通常,由顶部到底部BoxLayout对象控制的所有组件应该具有相同的X对齐。”。
所以你应该添加这一行:
label.setAlignmentX(Component.CENTER_ALIGNMENT);