Java - 创建 JPanel 数组会导致空指针异常

标签 java arrays nullpointerexception jpanel

我正在尝试创建一个 jpanels 数组,但遇到了一些空指针异常

这是代码的一部分。这里的cartP是一个面板

JPanel[] p2 = new JPanel[10];
    p2[0].setPreferredSize(new Dimension(700, 40));
    p2[0].setMaximumSize(p2[0].getPreferredSize());
    p2[0].setLayout(new GridLayout(1,5,1,1));
    p2[0].add(new JLabel("text"));
    p2[0].add(new JLabel("text"));
    p2[0].add(new JLabel("text"));
    p2[0].add(new JLabel("text"));
    p2[0].setBackground(Color.CYAN);

    cartP.add(p2[0]);

我将用它来制作查看购物车,就像在购物网站上一样。

这是一个异常(exception)..

Exception in thread "main" java.lang.NullPointerException
at storeapp.Cart.gui(Cart.java:59)
at storeapp.Cart.<init>(Cart.java:29)
at storeapp.Cart.main(Cart.java:157)

Java 结果:1

知道为什么我会遇到这个异常吗?

最佳答案

因为

JPanel[] p2 = new JPanel[10];

创建一个 null JPanel 指针数组。在使用数组的每个元素之前,您需要对其进行初始化。

for (int i=0; i<p2.length; i++) {
    p2[i] = new JPanel(/* snip */);
}

这与任何数组初始化的行为一致。除非另有分配,否则数组的元素具有数组类型的默认值; for any object type, the default value is null .

关于Java - 创建 JPanel 数组会导致空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12999858/

相关文章:

java - 找不到代码中的错误

java - HttpURLConnection 在 getResponseCode 处抛出 NullPointerException

java - 注入(inject)对象时 @inject 似乎不起作用 NPE

java - 默认 Java WebApp 的 Azure GIT 持续部署(使用默认 Tomcat)

java - 服务器应用程序 : Only works with a println output

java - 如何显示 JPasswordField 的文本

c - 计算偶数或奇数然后将它们相加的 for 循环

Java - 使用 Scanner 将字符串和整数从文件中提取到数组中

java - 使用 JDBC 从 ORACLE 获取 CLOB 数据时出现 NotSerializedException

c# - 从给定范围拆分数组