gpt4 book ai didi

java - 尝试在面板上添加标签

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

我试图在我创建的每个面板中放置一个标签,但我只在最后创建的面板中获得标签。这是一个蛇和梯子的游戏,我正在尝试启动游戏的棋盘。我需要每个面板都有一个编号。

    public InitBoard() {
JPanel jPanel1 = new JPanel(new GridLayout(10, 10, 0, 0));
JPanel[][] pa = new JPanel[10][10];
//jPanel1.setSize(1024,1080);

int counter=1;
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {

JPanel tiles = new JPanel();
tiles.setBorder(BorderFactory.createLineBorder(Color.BLACK));
number++;
label1.setText(String.valueOf(number));
tiles.add(label1);

if(counter == 1) {
tiles.setBackground(Color.green);
}
if (counter == 2) {
tiles.setBackground(Color.red);
}
if(counter == 3 ){
tiles.setBackground(Color.cyan);
}

counter++;
pa[i][j] = tiles;
jPanel1.add(pa[i][j]);
if(counter ==5){
counter =1;
}
}
}

add(jPanel1, BorderLayout.CENTER);
setSize(960, 960);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
}

运行文件时显示以下图像。提前感谢任何帮助。

最佳答案

我无法从您发布的代码中看到这一点,但您似乎对所有图 block 重复使用相同的 JLabel 实例 (label1)。这会导致标签被覆盖并重新用于除最后一个之外的所有图 block 。

只需使用这一行:

tiles.add(new JLabel(String.valueOf(number)));

而不是您当前拥有的:

label1.setText(String.valueOf(number));
tiles.add(label1);

进行此更改后,我让您的代码按预期工作,在每个图 block 上显示一个数字。如果这些数字需要存储在某处或者您需要能够在以后更改它们,您可能需要创建一个类似于 JPanel 数组 (pa) 的数组。

关于java - 尝试在面板上添加标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44086578/

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