在往JTextArea中填充数据时,JTextArea上的滚动条也可以拖动。
解决办法:
主线程放在EDT中,fill JTextArea的操作放在另外一个线程中,这样fill操作与GUI上的操作就分离了,不会出现排除的情况

package swing.jtextarea;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities; public class JTextAreaFillDemo {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JTextAreaFrame frame = new JTextAreaFrame();
frame.setTitle(frame.getClass().getSimpleName());
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
}
});
}
} class JTextAreaFrame extends JFrame {
private static final long serialVersionUID = 8390788205754221692L;
private JTextArea jtextarea; public JTextAreaFrame() {
jtextarea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(jtextarea);
this.add(scrollPane, BorderLayout.CENTER);
fillJTextArea();
} public void fillJTextArea() {
new Thread(new Runnable() {// 启动数据获取,更新显示进程
public void run() {
JTextAreaFiller d = new JTextAreaFiller(jtextarea);
d.fillJtextArea();
}
}).start();
} }
package swing.jtextarea;

import java.util.concurrent.TimeUnit;

import javax.swing.JTextArea;

public class JTextAreaFiller {
private JTextArea jTextArea; public JTextAreaFiller(JTextArea jTextArea) {
this.jTextArea = jTextArea;
} public void fillJtextArea() {
try {
for (int i = 0; i < 10000; i++) {
System.out.println("当前数据为:" + i);
jTextArea.append("当前数据为:" + i + "\n"); // 调用主窗口的jtextarea进行添加数据,显示
TimeUnit.SECONDS.sleep(1);
}
} catch (Exception ex) {
ex.printStackTrace();
} }
}

最新文章

  1. pip apt source images
  2. Boostrap
  3. C++中输入输出的重定向
  4. PHP程序员如何突破技术瓶颈
  5. Altium Desiner 警告 adding hidden net
  6. vSphere、Hyper-V与XenServer 你选哪个?
  7. volley二次封装
  8. StereoBM::disp12MaxDiff Crash the Release
  9. 谷歌、火狐浏览器gift图片缓存后不显示动态效果
  10. PHP环境搭建(Windows8.1+IIS8.5+PHP5.6+PHPStorm)
  11. 学习笔记之Linux Shell脚本教程:30分钟玩转Shell脚本编程
  12. struts1、ajax、jquery、json简单实例
  13. javascript (十四) dom
  14. AgileEAS.NET SOA中间件平台/敏捷软件开发平台
  15. less的基本操作
  16. ife2018 零基础学院 day 3
  17. Mac笔记本中是用Idea开发工具在Java项目中调用python脚本遇到的环境变量问题解决
  18. Android-Kotlin-枚举enum
  19. Mysql(二)函数与连接
  20. Tomcat不同版本所对应的Servlet/JSP规范

热门文章

  1. sort功能使用
  2. 有关信息ACM/ICPC竞争环境GCC/G++叠插件研究记录的扩展
  3. windows phone 页面传值(7)
  4. Apple Watch视频教程(连载)
  5. Google Map API V2密钥申请
  6. POJ培训计划2253_Frogger(最短/floyd)
  7. .net MVC AutoFac基地的环境建设
  8. Spring官方网站的改版后下载
  9. Spring系列
  10. 如何:使用 Visual Studio 中的一键式发布来部署 Web 应用程序项目