1

我正在为我用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);
}

我希望这个面板看起来像一个盒子中的所有组件都向右对齐。当我运行它时,除了标签与布局的其余部分不匹配外,一切正常。谁能解释我做错了什么,或者解决它的可能方法。

这是我的问题,我知道它很模糊,但你可以看出标签向右偏移。 这是我的问题

4

1 回答 1

2

您应该设置每个组件的 x 对齐方式。来自 java教程:“通常,由自上而下的 BoxLayout 对象控制的所有组件都应具有相同的 X 对齐方式。”。

所以你应该添加这一行:

label.setAlignmentX(Component.CENTER_ALIGNMENT);
于 2013-04-30T22:07:23.957 回答