java 刷新jtextarea_Java JTextArea不能实时刷新的问题
相信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不能实时刷新的问题相关推荐
- java 获得jtextarea_java JTextArea中获得光标所在行数
[java]代码库import java.awt.BorderLayout; import java.awt.Rectangle; import java.awt.event.ActionEvent; ...
- web 实时刷新 websocket 大数据
最近在做的一个项目,是一个大数据分析平台,有如下需求:有如果个实验设备运行并且将运行数据通过socket发送到分析平台,分析平台通过运行socket作业来完成对socket数据的接收,同时还需要对接收 ...
- 不懂代码,如何做出实时刷新的数据大屏?
首先恭喜你,当你看到这篇文章的时候,不管你是小白还是大咖,你都将直接获得一个高级技能:轻松上手可实时刷新的酷炫大屏. 制作可视化大屏,一般有这么几种方案: 写代码调用数据和图表,比如写JS+Echar ...
- Java:Swing篇,实现JList、JTextArea的自动滚动,实时刷新功能
1. 功能 作为swing的组件,JList与JTextArea是不可以单独实现滚动功能的,需要与JScrollPane结合才可以. 本代码中: JList实现从其它数据源获取数据,然后依次对这些数据 ...
- Widget上实时刷新图片,造成anr问题
由于项目的需要,在widget的上要实时刷新图片,而且刷新的频率要随着方向传感器的改变而变化.刷新的频率较高,在正常情况下,无法打开widget对应的应用,提示应用无法响应,从而造成anr的问题.在终 ...
- springboot心跳检测_springboot websocket 实时刷新 添加心跳机制(亲测可用版)
思路 在我之前的一篇文章当中写到了websocket的实时刷新,但是有个问题没有解决,就是长时间没有数据的时候,这个连接就会自动断开,然后再次进行连接的话,需要再次进行连接.如果加入心跳机制的话,10 ...
- SpringBoot项目实现配置实时刷新功能
需求描述:在SpringBoot项目中,一般业务配置都是写死在配置文件中的,如果某个业务配置想修改,就得重启项目.这在生产环境是不被允许的,这就需要通过技术手段做到配置变更后即使生效.下面就来看一下怎 ...
- 优雅地实现一个高效、异步数据实时刷新的列表
今日科技快讯 2月11日消息,据CNBC报道,当特斯拉公司于2019年1月宣布第二轮裁员以控制成本时,一个关键部门受到的打击尤为沉重.两名被裁汰的员工表示,负责向北美地区客户交付Model 3电动汽车 ...
- 页面实时刷新技术探讨
页面实时刷新技术探讨 url:http://blog.csdn.net/skysandy/archive/2009/08/17/4455480.aspx 最近,公司做一个交通软件产品,需要实现页面实时 ...
最新文章
- mysql with as_mysql数据库学习(第十六篇)- 视图
- “CV_GRAY2BGR”: 未声明的标识符
- Html:upload
- 前端学习(1981)vue之电商管理系统电商系统之完成可选项的添加操作
- linux 3d加速驱动_实时Linux,3D打印自行车,Google的“加速的移动页面”等
- ECS弹性网卡+弹性公网IP配置最佳实践之策略路由
- 2017CodeM复赛
- 关于zend framework控制器中action命名的问题
- SpringBoot中多种Filter配置方式
- 脚本文件不变色_LoadRunner脚本开发
- sql删除重复数据只保留一条的操作方法
- 最简单AnyLogic安装教程——天津理工大学
- hmcl启动器安装游戏版本失败_HMCL 启动器教程 #2 安装游戏版本、模组加载器与高清修复...
- 用Latex写学术论文:作者(Author)摘要(Abstract)
- 使用ftp传输文件到arm板
- ibeacon的实现,广播数据解析
- HDU - 6438 优先队列,+贪心。
- 安装驱动显卡重启计算机,Win7电脑安装显卡驱动后一直重启的解决方法
- 酷派COOL20s什么时候发布 酷派COOL20s配置如何
- mysql 删除时间一个星期_2020春招必备:MySQL(20)与Redis(20),不看答案能答对几道?
热门文章
- 回溯求解排列组合(求源码评论区留言)
- Vim功能键整理(图片来自mooc)
- 十进制小数化为二进制小数的方法是什么_十进制转成二进制的两种方式
- 解密ControlRotation与ActorRotation
- Asterisk权威指南/第五章 用户设备配置
- 基于TCP协议的网络程序(基础学习)
- windowsCE异常和中断服务程序初探(=)
- jmeter找不到java_Windows下Jmeter安装出现Not able to find Java executable or version问题解决方案...
- python 跳一跳辅助_微信跳一跳辅助自动跳Python
- arcgis报错常用解决方法