java - foreach循环java中的数组错误

标签 java arrays swing jbutton

我正在为带有 swing UI 的基本刽子手游戏编写代码。我正在使用 for 循环来启动字母的所有按钮。但是我在第 39 行遇到了空指针异常。我已经查看了它,但不确定为什么它不能正常工作。下面 10 行左右的代码是引发问题的地方。

    import java.awt.Color;
    import javax.swing.*;

    public class GameUI {

    public static void main(String[] args){
        GameUI ui = new GameUI();
        ui.initializeUI();
    }

    public void initializeUI(){
        //initialize the window
        JFrame window = new JFrame();
        window.setSize(500,500);
        window.setResizable(false);
        window.setVisible(true);

        //initialize main panel
        JPanel wrapper = new JPanel();
        wrapper.setLayout(null);
        Color BGColor = new Color(240,230,140);
        wrapper.setBackground(BGColor);
        window.getContentPane().add(wrapper);

        //Creates JLAbel title, this is used for the title of the game
        JLabel title = new JLabel("Hangman v0.1");
        title.setBounds(10, 5, 200, 50);
        wrapper.add(title);
        //=================================================================
        //Creates JButtons for each letter (ERROR OCCURS BELLOW ON FIRST LINE AFTER LOOP BEIGNS)
        //=================================================================
        char[] alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
        JButton[] letterButtons = new JButton[26];

        int counter = 0;

        for (char letter:alphabet){
            letterButtons[counter].setText("" + letter);

            //sets positions for each button
            int posY = 50;
            int posX = counter*5 + 10;
            letterButtons[counter].setBounds(posX, posY, 10, 10);
            wrapper.add(letterButtons[counter]);
            counter++;
        }       
    }   
}

最佳答案

Java 中的对象默认为 nullObject 数组中的内容没有什么不同。在尝试对 JButton 数组 letterButtons 调用任何操作之前,您需要初始化它们

for (int i=0; i < letterButtons.length; i++) {
   letterButtons[i] = new JButton();
}

关于java - foreach循环java中的数组错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16493166/

相关文章:

java - JComboBox 问题

java - 使用单个准备好的语句删除超过 1 条记录

java - 检查 Activity 互联网连接 Android

java - 如何拆分一串 8 个数字并单独访问每个数字?

java - JRadiobutton 选择未显示

java - 将饼图设置为 JLabel 而不是新框架

java - 使用Java读取文件的最后n个字节

java - 将视频文件 (.mp4) 集成到 docx/doc 中

javascript - 按最大匹配对字符串匹配结果进行排序

arrays - Fortran 没有给出数组分配错误