gpt4 book ai didi

java - JPanel 中的 GridBagLayout,组件不改变 x || y 位置

转载 作者:行者123 更新时间:2023-12-02 04:09:02 25 4
gpt4 key购买 nike

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

import javax.swing.*;
import java.awt.*;

public class DieIntGUI extends JFrame {

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

}

public static void main(String[] args) {
DieIntGUI frame = new DieIntGUI("Dice Game");
frame.setVisible(true);
}

private void initComponents() {
panel = new JPanel();
errorMessages = new JLabel("T");
playerWins = new JLabel("F");
computerWins = new JLabel("S");

drawComponents();
}


private void drawComponents() {

GridBagConstraints gbc = new GridBagConstraints();

panel.setLayout(new GridBagLayout());
panel.setSize(700, 700);

panel.setBackground(Color.white);

gbc.gridx = 2;
gbc.gridy = 17;

panel.add(playerWins, gbc);

}

private JPanel panel;
private JLabel errorMessages;
public JLabel playerWins, computerWins;


}

最佳答案

使用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 个组件,则没有任何意义,没有不可见的网格位置。)

关于java - JPanel 中的 GridBagLayout,组件不改变 x || y 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33974648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com