java - 通过 setText 更新 TextArea 会清除所有文本

标签 java

我用 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 创建一个新窗口,仅带有一个文本标签(ta),其中包含所有连接的用户,还要求仅控制框架是否已打开。

然后是它变得困惑的部分:

 else {
      con.ta.setText(message.substring(26));
 }

这里只是应该通过将文本设置为新列表来刷新列表 但它并没有这样做,而是只是删除了窗口。

如何修复它?

之前:

enter image description here

之后:

enter image description here

最佳答案

好吧,我刚刚发现了问题: ConnectedList con = new ConnectedList(); 在所有其他变量的顶部,现在它确实可以工作,

关于java - 通过 setText 更新 TextArea 会清除所有文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7130899/

相关文章:

java - java中属性文件的路径

java - 在 Tomcat 中部署后来自 servlet 过滤器的 JSP 文件路径

java - Maven 依赖顺序

java - Java 中 C-sharp 的 "#region"和 "#endregion"?

java - 使用 connection.createStatement().executeQuery(String query); 是否安全?

java - 生命游戏未正确暂停

java - 显示 JTabbedPane 的第一个选项卡

java - 如何同时读取和写入ArrayList

java - 水波纹效果错误(Java Opengl)

Java - 用于连接的 If 语句