我在java中创建了一个聊天室,服务器和客户端。
以下代码是我的在线列表搞砸了:
public void run() {
try {
while (true) {
String message = din.readUTF();
if (message.startsWith("CONNECTEDLISTEDWOOOOOOOOT")) {
ConnectedList con = new ConnectedList();
if (demanded == 1) {
con.ta.setText(message.substring(26));
con.setSize(200, 400);
con.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
con.setVisible(true);
demanded = 0;
} else {
con.ta.setText(message.substring(26));
}
} else {
ta.append(message+"\n");
if(!lol.isActive()) {
InputStream in = getClass().getResourceAsStream("bleep.wav");
AudioStream as = new AudioStream(in);
AudioPlayer.player.start(as);
}
}
}
} catch(IOException ie) { System.out.println(ie); }
}
这段代码完美无缺:
if (demanded == 1) {
con.ta.setText(message.substring(26));
con.setSize(200, 400);
con.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
con.setVisible(true);
demanded = 0;
}
它使用JFrame创建一个新窗口,只需要一个textlabel(ta),其中包含所有连接的用户,还需要控制框架已经打开或不打开。
然后这个部分搞砸了:
else {
con.ta.setText(message.substring(26));
}
这里只是通过将文本设置为新列表来刷新列表 但它没有这样做,只是抹掉了窗户。
我该如何解决?
答案 0 :(得分:0)
好吧,我刚刚发现了问题: 连接列表com =新连接列表(); 在所有其他变量的顶部,现在它确实有效,