相信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();//发送邮件

}

});

}

});

}

java 刷新jtextarea_Java JTextArea不能实时刷新的问题相关推荐

  1. java 获得jtextarea_java JTextArea中获得光标所在行数

    [java]代码库import java.awt.BorderLayout; import java.awt.Rectangle; import java.awt.event.ActionEvent; ...

  2. web 实时刷新 websocket 大数据

    最近在做的一个项目,是一个大数据分析平台,有如下需求:有如果个实验设备运行并且将运行数据通过socket发送到分析平台,分析平台通过运行socket作业来完成对socket数据的接收,同时还需要对接收 ...

  3. 不懂代码,如何做出实时刷新的数据大屏?

    首先恭喜你,当你看到这篇文章的时候,不管你是小白还是大咖,你都将直接获得一个高级技能:轻松上手可实时刷新的酷炫大屏. 制作可视化大屏,一般有这么几种方案: 写代码调用数据和图表,比如写JS+Echar ...

  4. Java:Swing篇,实现JList、JTextArea的自动滚动,实时刷新功能

    1. 功能 作为swing的组件,JList与JTextArea是不可以单独实现滚动功能的,需要与JScrollPane结合才可以. 本代码中: JList实现从其它数据源获取数据,然后依次对这些数据 ...

  5. Widget上实时刷新图片,造成anr问题

    由于项目的需要,在widget的上要实时刷新图片,而且刷新的频率要随着方向传感器的改变而变化.刷新的频率较高,在正常情况下,无法打开widget对应的应用,提示应用无法响应,从而造成anr的问题.在终 ...

  6. springboot心跳检测_springboot websocket 实时刷新 添加心跳机制(亲测可用版)

    思路 在我之前的一篇文章当中写到了websocket的实时刷新,但是有个问题没有解决,就是长时间没有数据的时候,这个连接就会自动断开,然后再次进行连接的话,需要再次进行连接.如果加入心跳机制的话,10 ...

  7. SpringBoot项目实现配置实时刷新功能

    需求描述:在SpringBoot项目中,一般业务配置都是写死在配置文件中的,如果某个业务配置想修改,就得重启项目.这在生产环境是不被允许的,这就需要通过技术手段做到配置变更后即使生效.下面就来看一下怎 ...

  8. 优雅地实现一个高效、异步数据实时刷新的列表

    今日科技快讯 2月11日消息,据CNBC报道,当特斯拉公司于2019年1月宣布第二轮裁员以控制成本时,一个关键部门受到的打击尤为沉重.两名被裁汰的员工表示,负责向北美地区客户交付Model 3电动汽车 ...

  9. 页面实时刷新技术探讨

    页面实时刷新技术探讨 url:http://blog.csdn.net/skysandy/archive/2009/08/17/4455480.aspx 最近,公司做一个交通软件产品,需要实现页面实时 ...

最新文章

  1. mysql with as_mysql数据库学习(第十六篇)- 视图
  2. “CV_GRAY2BGR”: 未声明的标识符
  3. Html:upload
  4. 前端学习(1981)vue之电商管理系统电商系统之完成可选项的添加操作
  5. linux 3d加速驱动_实时Linux,3D打印自行车,Google的“加速的移动页面”等
  6. ECS弹性网卡+弹性公网IP配置最佳实践之策略路由
  7. 2017CodeM复赛
  8. 关于zend framework控制器中action命名的问题
  9. SpringBoot中多种Filter配置方式
  10. 脚本文件不变色_LoadRunner脚本开发
  11. sql删除重复数据只保留一条的操作方法
  12. 最简单AnyLogic安装教程——天津理工大学
  13. hmcl启动器安装游戏版本失败_HMCL 启动器教程 #2 安装游戏版本、模组加载器与高清修复...
  14. 用Latex写学术论文:作者(Author)摘要(Abstract)
  15. 使用ftp传输文件到arm板
  16. ibeacon的实现,广播数据解析
  17. HDU - 6438 优先队列,+贪心。
  18. 安装驱动显卡重启计算机,Win7电脑安装显卡驱动后一直重启的解决方法
  19. 酷派COOL20s什么时候发布 酷派COOL20s配置如何
  20. mysql 删除时间一个星期_2020春招必备:MySQL(20)与Redis(20),不看答案能答对几道?

热门文章

  1. 回溯求解排列组合(求源码评论区留言)
  2. Vim功能键整理(图片来自mooc)
  3. 十进制小数化为二进制小数的方法是什么_十进制转成二进制的两种方式
  4. 解密ControlRotation与ActorRotation
  5. Asterisk权威指南/第五章 用户设备配置
  6. 基于TCP协议的网络程序(基础学习)
  7. windowsCE异常和中断服务程序初探(=)
  8. jmeter找不到java_Windows下Jmeter安装出现Not able to find Java executable or version问题解决方案...
  9. python 跳一跳辅助_微信跳一跳辅助自动跳Python
  10. arcgis报错常用解决方法