JPanel中的GridBagLayout,组件不会改变x ||我的职位

时间:2015-11-28 18:07:06

标签: java swing jframe jlabel gridbaglayout

我试图创建自己的GUI,尝试将 playerWins JLabel移到最右边。我尝试过更改x和y坐标,但JLabel保持原样。我想知道是否与JPanel设置为CENTER有关。

{{1}}

2 个答案:

答案 0 :(得分:2)

使用GridBagLayout的解决方案将是。

gbc.gridx = 1;
gbc.gridy = 1;
gbc.weightx=1; //Fill all space
gbc.anchor=GridBagConstraints.EAST; //align component to the EAST

我已将x,y设置为1.重要的是要理解这些是与您添加的其他对象相关的索引。 (如果只有一个组件没有意义,那么没有不可见的网格位置。)

答案 1 :(得分:0)

这会将标签移到最右边。

public DieIntGUI(String title) {
    super(title);
    setSize(700, 700);
    getContentPane().setBackground(Color.white);
    setLayout(new BorderLayout());
    initComponents();
    add(panel, BorderLayout.EAST); // Move to right
    add(errorMessages, BorderLayout.SOUTH);
    setLocationRelativeTo(null);
}

输出:

enter image description here

是的,panel设置为CENTER,因为在BorderLayout中,如果您未指定位置,则默认设置为BorderLayout.CENTER