我是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));
* */
}
}
}
但我的空指针异常,我不知道为什么?
有人可以帮助我或在我的代码中显示错误。
谢谢!
答案 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:'这个'是什么类型的?