Java 正在尝试在面板上添加标签
我试图在我创建的每个面板中放置一个标签,但我只在创建的最后一个面板中获得标签。这是一个蛇和梯子的游戏,我正在尝试启动游戏板。我需要每个面板都有一个编号Java 正在尝试在面板上添加标签,java,swing,Java,Swing,我试图在我创建的每个面板中放置一个标签,但我只在创建的最后一个面板中获得标签。这是一个蛇和梯子的游戏,我正在尝试启动游戏板。我需要每个面板都有一个编号 public InitBoard() { JPanel jPanel1 = new JPanel(new GridLayout(10, 10, 0, 0)); JPanel[][] pa = new JPanel[10][10]; //jPanel1.setSize(1024,1080);
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);
}
运行该文件时显示以下图像。
任何帮助都将提前得到感谢。
我从您发布的代码中看不到这一点,但似乎您正在对所有磁贴使用相同的JLabel实例label1。这会以某种方式导致标签被覆盖,并重新用于除最后一个瓷砖以外的所有瓷砖 只要用这句话:
tiles.add(new JLabel(String.valueOf(number)));
而不是您当前拥有的:
label1.setText(String.valueOf(number));
tiles.add(label1);
进行此更改后,我使您的代码按预期工作,在每个磁贴上显示一个数字。如果这些数字需要存储在某个地方,或者您以后需要更改它们,您可能需要创建一个类似于JPanels pa的数组。非常感谢!我为这个项目工作太久了,我都没注意到!