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