博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用SwingWorker为界面执行异步任务
阅读量:4878 次
发布时间:2019-06-11

本文共 1332 字,大约阅读时间需要 4 分钟。

当UI界面需要读取网络内容等耗时操作时,可以使用这个方法。

添加按钮的点击事件:

btnRun.addMouseListener(new MouseAdapter() {			@Override			public void mouseClicked(MouseEvent e) {				webRead();			}		});

 添加webReader方法:

public void webRead() {		new SwingWorker
(){ @Override protected StringBuilder doInBackground() throws Exception { URL url=new URL("https://home.firefoxchina.cn/?from=extra_start"); URLConnection connection=url.openConnection(); BufferedReader reader=new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); String line; StringBuilder builder =new StringBuilder(); while((line=reader.readLine())!=null) {// publish(line); builder.append(line).append("\n"); } reader.close(); return builder; } @Override protected void process(List
chunks) { for (String line:chunks) { textArea.append(line); textArea.append("\n"); } super.process(chunks); } @Override protected void done() { try { textArea.setText(get().toString()); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ExecutionException e) { // TODO Auto-generated catch block e.printStackTrace(); } super.done(); } }.execute(); }

 

转载于:https://www.cnblogs.com/zhhy236400/p/10555318.html

你可能感兴趣的文章
自动化测试用例getText()获取某一个元素的值返回null或空
查看>>
大数智能未来
查看>>
virtualenv和virtualenvwrapper 的安装和使用
查看>>
MAC sublime text 无法自动补齐标签
查看>>
NgBook留言本开发全过程(1)
查看>>
LeetCode-指针法
查看>>
Python之路,Day12 - 那就做个堡垒机吧
查看>>
linux之shell之if、while、for语句介绍
查看>>
Mysql phpStudy升级Mysql版本,流产了怎么办?
查看>>
SQLServer之数据库行锁
查看>>
OFDM仿真
查看>>
浅谈linux内核中内存分配函数
查看>>
走近SpringBoot
查看>>
thinkphp3.2.3分页
查看>>
python程序之profile分析
查看>>
写在读研初期
查看>>
开环增益对负反馈放大电路的影响
查看>>
MySQL-ERROR 2003
查看>>
SQL Server2012-SSIS的包管理和部署
查看>>
JavaScript内置对象
查看>>