java swing 程序运行完打印信息才显示出来

最近做一个swing的小程序,我想将所有控制台打印的信息截取到在JTextArea上显示,这个可以实现了,按理说应该是程序一边运行,打印信息一直更新,直至程序结束才对,我做的不知道怎么回事,程序运行中一点也不显示,程序运行完了,就将所有的打印信息一下子全部显示出来了,有没有swing大神给看一下,怎么回事

https://img3.mukewang.com/5b4a0c490001e0f007600782.jpg

https://img2.mukewang.com/5b4a0c4a000120ab06080185.jpg


PIPIONE
浏览 1099回答 2
2回答

肥皂起泡泡

首先,不能在事件派发线程(绘制界面和处理事件的线程)中执行耗时或者阻塞操作,这会导致界面没反应,像卡住了一样。io操作通常都是有阻塞或者耗时操作,所以不能放在事件派发线程里面执行。另外,修改swing组件的代码应该在事件派发线程中执行。你的代码违反了上面2个规范。你上面说的直到程序执行完了才打印是因为在输出的过程中,ui线程被阻塞,所以输出的结果没办法反应到界面上来

叮当猫咪

可能是我理解错了吧,swing或者android涉及到GUI这类编程都有个类似事件指派线程的概念,这个理解好了GUI编程就简单很多了
打开App,查看更多内容
随时随地看视频慕课网APP