我正在为我用 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);
}
我希望此面板的外观是一个框中的所有组件都向右对齐。然而,当我运行这个时,除了标签与布局的其余部分不匹配之外,一切正常。谁能解释一下我做错了什么,或者可能的解决方法。
这是我的问题,我知道它很模糊,但你可以看出标签向右偏移。
最佳答案
您应该设置每个组件的 x 对齐方式。来自java tutorial :“一般来说,由从上到下的 BoxLayout 对象控制的所有组件都应该具有相同的 X 对齐方式。”。
所以你应该添加这一行:
label.setAlignmentX(Component.CENTER_ALIGNMENT);
关于java - 盒子里的组件布局很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16309529/