最近做一个swing的小程序,我想将所有控制台打印的信息截取到在JTextArea上显示,这个可以实现了,按理说应该是程序一边运行,打印信息一直更新,直至程序结束才对,我做的不知道怎么回事,程序运行中一点也不显示,程序运行完了,就将所有的打印信息一下子全部显示出来了,有没有swing大神给看一下,怎么回事
2 回答
肥皂起泡泡
TA贡献1829条经验 获得超6个赞
首先,不能在事件派发线程(绘制界面和处理事件的线程)中执行耗时或者阻塞操作,这会导致界面没反应,像卡住了一样。io操作通常都是有阻塞或者耗时操作,所以不能放在事件派发线程里面执行。另外,修改swing组件的代码应该在事件派发线程中执行。你的代码违反了上面2个规范。你上面说的直到程序执行完了才打印是因为在输出的过程中,ui线程被阻塞,所以输出的结果没办法反应到界面上来
- 2 回答
- 0 关注
- 1089 浏览
添加回答
举报
0/150
提交
取消