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的数组。

非常感谢!我为这个项目工作太久了,我都没注意到!