使用GUI的Hangman游戏问题

时间:2012-03-01 03:58:33

标签: java swing list for-loop jlabel

我是Java套接字的新手,我尝试通过套接字开发一个小游戏,一切都在服务器上正常但在客户端,我在创建一个JLabel列表时遇到麻烦,为每个字母显示一个字母“_”

好的,我展示了我的代码,你会看到我遇到了什么麻烦。

我的Snippett代码如下:

List<JLabel>labels;

 private void getWordLabels(String word){
        char[] chars  = word.toCharArray();
        System.out.println(chars);
        int gapBetweenLetter = 300/chars.length;
        labels = new ArrayList<JLabel>();

        for(int i =0; i< chars.length ;i++){

           // JLabel l = new JLabel("_");
            labels.add(new JLabel());
            labels.get(i).setText("_");
            //this.add(l);
            //l.setBounds(10, 10, 10, 10);
            //l.show();
            this.removeAll();
            this.revalidate();
            this.repaint();
            labels.get(i).setBounds((i*gapBetweenLetter) + 10, 100, 50, 50);

            this.add(labels.get(i));

            labels.get(i).show();
             initComponents();

        /* labels.add(new JLabel("_"));
        this.add(labels.get(i));
        //labels[i].setText("_");
        System.out.println(labels.get(i));
        * */


    }
}
    }

但我的空指针异常,我不知道为什么?

有人可以帮助我或在我的代码中显示错误。

谢谢!

1 个答案:

答案 0 :(得分:2)

看不到任何明显的东西,所以我从重构到

开始
for(int i =0; i< chars.length ;i++){
        JLabel l = new JLabel("_");
        labels.add(l);
        this.add(l);
        //labels[i].setText("_");
        System.out.println(l);
    }

可能会帮助您查看问题。它还避免重复get(i)[在ArrayList上可能并不昂贵,但仍然]

BTW:'这个'是什么类型的?

相关问题