Плохая игра с графическим интерфейсом - PullRequest
0 голосов
/ 01 марта 2012

Я новичок в сокете 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 Ответ

2 голосов
/ 01 марта 2012

Ничего очевидного не вижу, поэтому я бы начал с рефакторинга на

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, но все же]

Кстати: какой тип 'this'?

...