各位高手,小弟请教一个线程与swing控件之间通讯的一个问题(50分)

时间:2023-01-29 12:04:39
小弟的程序中的结构如下:
    ChatClient类是主类,或者说是控制类
    UserView类是界面类,里面有一个JTextArea控件
    Receiver类是一个基于UDP的接受消息的线程类,其构造函数如下:
Receiver(UserView uPara){。。。。。。。},即构造了Receiver对UserView类的应用,以便把它收到的消息追加到UserView对象的JTextArea中。
    现在的关键是,调试发现远程的消息已经接受到本地的message变量中,但是无法使其显示到JTextArea上。(我的方法是:在receiver线程中给UserView对象发一个消息,即调用UserView中的JTextArea中的append方法。第一次接收到的消息,可以正常的显示,但是第二次以后的消息,就不行了

    小弟向各位请教了,谢谢
 
    

6 个解决方案

#1


第一次接收到的消息,可以正常的显示,但是第二次以后的消息,就不行了
1.确定消息是否通讯到了,如果没有,找原因
2.如果确实收到,输出下,组件是否REPAINT了

#2


客户端与服务器端通信不一致,看看你的代码吧,

#3


$ zz╭ ╮╭ ﹌╮.       $
$   z(o-.-o)(o-.-o) .      $
$ ┏~﹊︸ ̄~﹊︸ ̄~┓      $
$ IT者-IT开发者的网站--    $
$ 10万篇技术资料--天天更新 $
$ -----www.itzhe.cn-----   $

#4



有偿转让Java即时通信工具源程序及设计文档

可以学习到专业级的多线程、Socket、Swing图形等Java技术。

其中包括设计文档,更适合学生用于毕业设计


有意者与SnowingXimen@163.com联系

程序在这里
http://tomore.com/1/38258.html

#5


谢谢各位,我已经找到了答案
关键是BuffededReader.readLine()函数的问题

#6


关键是BuffededReader.readLine()函数的问题
次函数会把Buffer中的所有数据读出到message中,如果没有“\n”作为边界的话
而你的TextArea如果没有滚动条的话,那么问题就出现了

#1


第一次接收到的消息,可以正常的显示,但是第二次以后的消息,就不行了
1.确定消息是否通讯到了,如果没有,找原因
2.如果确实收到,输出下,组件是否REPAINT了

#2


客户端与服务器端通信不一致,看看你的代码吧,

#3


$ zz╭ ╮╭ ﹌╮.       $
$   z(o-.-o)(o-.-o) .      $
$ ┏~﹊︸ ̄~﹊︸ ̄~┓      $
$ IT者-IT开发者的网站--    $
$ 10万篇技术资料--天天更新 $
$ -----www.itzhe.cn-----   $

#4



有偿转让Java即时通信工具源程序及设计文档

可以学习到专业级的多线程、Socket、Swing图形等Java技术。

其中包括设计文档,更适合学生用于毕业设计


有意者与SnowingXimen@163.com联系

程序在这里
http://tomore.com/1/38258.html

#5


谢谢各位,我已经找到了答案
关键是BuffededReader.readLine()函数的问题

#6


关键是BuffededReader.readLine()函数的问题
次函数会把Buffer中的所有数据读出到message中,如果没有“\n”作为边界的话
而你的TextArea如果没有滚动条的话,那么问题就出现了