赶集网网站建设费用,花卉电子商务网站开发,服务专业的网络建站公司,网站下拉箭头怎么做的相信JTextArea用法都了解吧#xff0c;JTextArea textArea new JTextArea();生成一块空白的区域#xff0c; 我的需求就是点击发送邮件按钮后#xff0c;后台的执行日志能输出到textArea中。但是我点击发送按钮的时候#xff0c;由于邮件的附件要好久#xff0c;界面一直…相信JTextArea用法都了解吧JTextArea textArea new JTextArea();生成一块空白的区域 我的需求就是点击发送邮件按钮后后台的执行日志能输出到textArea中。但是我点击发送按钮的时候由于邮件的附件要好久界面一直没有日志数据输出等了一会后突然一下子刷出一大堆日志。不难看出是在等待线程结束导致日志输出滞后网上可以看到好多解决方案大致都是这里所说的方式http://15838341661-139-com.iteye.com/blog/1552332不过我试了下还是没解决我的问题于是想另起一个线程搞日志输出private ExecutorService service Executors.newCachedThreadPool(newThreadFactory() {OverridepublicThread newThread(Runnable r) {return new Thread(r, output);}});private voidupdateLog(String content) {service.submit(newRunnable() {Overridepublic voidrun() {textArea.append(log);}});}然而还是不好用后来发现点击发送按钮后整个界面都卡住才意识到是按钮的发邮件事件阻塞了Frame整个线程(不知道这么说是否确切)才导致JTextArea没法实时显示日志于是稍作修改在按钮监听到发邮件事件时另起一个线程来执行发邮件行为结果问题解决了public voidsendMail() {sendButton.addActionListener(newActionListener() {Overridepublic voidactionPerformed(ActionEvent e) {service.submit(newRunnable() {Overridepublic voidrun() {send();//发送邮件}});}});}