gpt4 book ai didi

java - 尝试在 Java Swing 中构建数独板。 NullPointerException 错误?

转载 作者:行者123 更新时间:2023-11-29 03:33:39 24 4
gpt4 key购买 nike

我正在为将生成和解决数独游戏的 Java 程序构建 GUI。我这样做的方式是有 1 个主 jpanel,里面有 3x3 jpanel,里面有 3x3 jlabels。

这是我目前所拥有的:

package sudoku;

import java.awt.GridLayout;
import javax.swing.*;
import javax.swing.border.Border;

public class Gui {

Gui gui;
JPanel board;
JPanel subBoard[][];
GridLayout layout;
JLabel square[][];
Border big;
Border small;

public void load() {

gui = new Gui();
gui.setUp();
gui.buildBoard();

}

private void setUp() {

layout = new GridLayout(3, 3);
board = new JPanel(layout);
subBoard = new JPanel[3][3];
square = new JLabel[9][9];

}

private void buildBoard() {

// set up board
board.setVisible(true);

int mod = 0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
// add subBoards to board
board.add(subBoard[i][j]);
subBoard[i][j].setLayout(layout);

// add textfields to each subBoard
subBoard[i][j].add(square[i + mod][j + mod]);

}
mod += 3;

}
}

}

我在这一行收到 NullPointerException 错误:

board.add(subBoard[i][j]);

有人可以解释为什么会这样吗?另外,如果您发现任何其他问题,或者我可以这样做的更好方法,请告诉我!谢谢。

最佳答案

在你的 setUp() 方法中这一行

subBoard = new JPanel[3][3];

您只创建了数组,但还没有用 JPanel 填充它。

因此,默认情况下,您的数组包含每个索引位置的 null,因此当您尝试将它们添加到您的 board 时(这与 subBoard 已正确初始化为 new JPanel(layout)) 它会抛出 NPE。

关于java - 尝试在 Java Swing 中构建数独板。 NullPointerException 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16641187/

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