【发布时间】:2012-03-01 03:58:32
【问题描述】:
我是 Java 套接字的新手,我尝试通过套接字开发一个小游戏,服务器上一切正常,但在客户端,当我创建一个 JLabel 列表以显示每个单词的字母“_”时遇到了麻烦
好的,我显示我的代码,你会看到我遇到了什么麻烦。
我的代码片段如下:
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));
* */
}
}
}
但是我得到了空指针异常,我不知道为什么?
有人可以帮助我或说明我的代码有什么问题。
谢谢!
【问题讨论】:
-
那是不可能的。该行上可能存在 NPE 的唯一方法是如果
ArrayList变量labels为空,但它不可能是空的,因为前面的行成功了。仔细检查您的错误消息! -
你能告诉我们你类的
add方法是做什么的吗? -
@Diego 我认为他的类扩展了 JFrame 或容器,它只是从容器添加的方法
-
@Dynguss 正如我在我的代码中提到的,您可以在上面看到我对我的代码 sn-p 的评论。 ErnestFriedman-Hill:你能详细解释一下吗? Diego:我的课程从 JPanel 扩展而来,这个 Panel 将 JLabel 添加到 JPanel
-
如需尽快获得更好的帮助,请发帖SSCCE。
标签: java swing list for-loop jlabel