java - Java 中的 ArrayIndexOutofBounds/NullPointerException

标签 java swing jlabel jcombobox indexoutofboundsexception

我是 Java 初学者。所以我的问题是我试图隐藏窗口的所有照片组件并让其他一些组件出现。但问题是每次我使用 JComboBox 选择项目时,它总是抛出 Exception in thread "AWT-EventQueue-0"java.lang.ArrayIndexOutOfBoundsException: 10

这是错误的代码块:

for (cnt1=0; cnt1<10; cnt1++);
        {
            labels1[cnt1].setVisible(true);
        }

        for (cnt2=0; cnt2<10; cnt2++);
        {
            labels2[cnt2].setVisible(false);
        }


        for (cnt3=0; cnt1<10; cnt3++);
        {
            labels3[cnt3].setVisible(false);
        }

        for (cnt4=0; cnt4<10; cnt4++);
        {
            labels4[cnt4].setVisible(false);
        }

        for (cnt5=0; cnt5<10; cnt5++);
        {
            labels5[cnt5].setVisible(false);
        }

你能告诉我这里的问题是什么吗?如果您需要,我会发布整个代码。先感谢您。

编辑:我已经修复了数组中的错误,但是这次。编译器给了我这个错误:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

顺便说一句,这是声明我的数组的片段:

String iconFiles1[] = {"Articuno.png", "Blastoise.png", "Charizard.png", "Kabutops.png", "Mewtwo.png", "Moltres.png", "Omastar.jpg", "Pikachu.jpg", "Venusaur.png", "Zapdos.png"};
String Jlabels1[] = {"Articuno", "Blastoise", "Charizard", "Kabutops", "Mewtwo", "Moltres", "Omastar", "Pikachu", "Venusaur", "Zapdos"};
ImageIcon icons1[] = new ImageIcon[iconFiles1.length];
JLabel labels1[] = new JLabel[Jlabels1.length];

这是它在 GUI 中的分配:

for (int cnt1=0; cnt1<labels1.length; cnt1++)
        {
            labels1[cnt1].setVisible(true);
        }

我做的对吗?答案表示赞赏。再次。谢谢。

最佳答案

您似乎至少在一个 for 循环中有不正确的变量(正如其他几位发帖人已经指出的那样)。

尽管如此,您得到 ArrayIndexOutOfBoundsException 的原因是因为在所有 for 循环之后都有分号,从而使它们执行只是增加你的计数器变量。您在 for 循环中递增的变量不会在 for 循环本身中本地声明,因此它们的范围是您当前所在的任何函数(也就是它们存在于 for 循环之外)。因此,当循环完成递增时,您的计数器将太大(在本例中为 10)---> 因此 ArrayIndexOutOfBoundsException: 10

关于java - Java 中的 ArrayIndexOutofBounds/NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17510748/

相关文章:

java - Java 中 Google Chrome 和 Mozilla 的导出书签 HTML 文件的解析器

java - Tomcat 使用 Spring MVC 返回 404 页面;未到达 Controller

Java 线程 - Swing 应用程序

Java - 如何显示图像?

java - 在 JTabbedPane header 中添加一个 JLabel

java - 更新 JComboBox 弹出菜单

java - 当我运行此代码时,仅显示两个节点的数据和新节点的数据,但不显示第三个和第四个节点的数据

java - 如何在 BorderLayout 的中心使用 JScrollpane

java - 如何从文件夹中获取最后保存的项目的名称?

java - 单击后如何在 actionPerformed 内创建标签?