SWT 启动画面显示进度条

SWT中的进度条 在进行开发的过程中,经常看到很多软件安装的时候会显示进度,在取消的时候线程也随着取消。所以我们将要进行怎样用线程对进度条进行控制。 当单击“开始”按钮时,创建一个线程;当单击取消按钮时,可以结束线程,这样就达到了对线程的控制,不会让线程自生自灭了。 先上图: 关键代码如下: package com.wyy.ProgressbarComplex; import org.eclips 阅读详情

      需求 :最近在项目中使用 SWT时 ,需要在启动时加载较大的数据量,所以启动时间较慢。为了实现用户等待的友好界面,因此打算在启动画面时,同时加载数据,达到一个平缓的过渡。 

     原理:使用SWT的DIsplay类的异步方法,异步执行一个线程,该线程在记载数据的同时,实现进度条滚动,最后打开主页面 。

    实现:使用抽象类实现,可以在多个应用中同时使用,主界面实现该抽象类即可 。

   缺点: 滚动条滚动值需自行实现,滚动条不是很平滑。

 



public abstract class Splash {

 
/**
  * Create contents of the window
  
*/

 
//在进度条时加载后台数据。
 public abstract void loadData(ProgressBar bar);//滚动条滚动值需自行实现
 
 
//执行显示主页面
 public abstract void openMain(Image titleImage);

 
public void createContents(Display display) {
  
  
// 启动页面
  final Image image = new Image(display, this.getClass().getResourceAsStream("/wait.jpg"));
  
final Image titleImage = new Image(display, this.getClass().getResourceAsStream("/eclipse32.gif"));
  
final Shell splashShell = new Shell(SWT.ON_TOP);

  
final ProgressBar bar = new ProgressBar(splashShell, SWT.NONE);

  
final Color color = Display.getCurrent()
    .getSystemColor(SWT.COLOR_GREEN);

  bar.setMinimum(
0);

  bar.setMaximum(
100);

  bar.setForeground(color);

  
final Label label = new Label(splashShell, SWT.NONE);

  label.setImage(image);

  FormLayout layout 
= new FormLayout();

  splashShell.setLayout(layout);

  FormData labelData 
= new FormData();

  labelData.right 
= new FormAttachment(100, 0);

  labelData.bottom 
= new FormAttachment(100, 0);

  label.setLayoutData(labelData);

  FormData progressData 
= new FormData();

  progressData.left 
= new FormAttachment(0, 5);

  progressData.right 
= new FormAttachment(100, -5);

  progressData.bottom 
= new FormAttachment(114, -35);

  bar.setLayoutData(progressData);

  splashShell.pack();

  Rectangle splashRect 
= splashShell.getBounds();

  Rectangle displayRect 
= display.getBounds();

  
int x = (displayRect.width - splashRect.width) / 2;

  
int y = (displayRect.height - splashRect.height) / 2;

  splashShell.setLocation(x, y);

  splashShell.open();

  display.asyncExec(
new Runnable() {//异步执行一个线程

   
public void run() {

    
for (int i = 1; i < 2; i++) {

     
try {
      Thread.sleep(
1000);

     } 
catch (Throwable e) {

     }
     loadData(bar);
    }

    splashShell.close();

    color.dispose();

    image.dispose();

    
// 主页面
    openMain(titleImage);
   }
  });

 }

}

SWT/Jface文件下载进度条 组件封装代码 对SWT/Jface的进度条(ProgressMonitorDialog)进行封装,使下载文件更方便调用. DownloadProgressBar 是单个文件下载类 MultiDownloadProgressBar 是多个文件下载类 Test开头的类是测试类 支持下载完毕后自动关闭流,支持取消按钮后自动删除未下载完的文件,支持下载成功或失败后的事件监听. 调用也方便,简单,只需要传入shell,输入流,输出流(或目标文件)就可自动下载. 调用代码示例如下: InputStream is = new FileInputStream("E:\\aaa.rar"); File outFile=new File("f:\\abc.rar"); DownloadProgressBar bar = new DownloadProgressBar(shell,"downloading...", is, outFile); bar.open(); 多文件下载传入输入流数组,输出流数组(或目标文件数组)便可自动下载. 下载资源后,请自动更改包名. 立即下载

相关推荐

Pointnet++环境配置+复现

深度学习点云经典网络Pointnet++

weixin_58663121的博客 8075

SWT进阶版-进度条

package demotest; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.ProgressBar; import org.eclipse.swt.widgets.Shell; /** * * @author mositure * */ public class ProgressBarSample { /** * @param .

cnds2016的博客 548

树莓派34/100 - Pico读取MPU6050加速度和陀螺仪传感器数据

树莓派Pico连接MPU-6050模块(三轴陀螺仪+三轴加速度),读取运动姿态数据。

申龙斌的程序人生 5089

怎么正确的使用SWT进度条

&lt;!--CTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//E--&gt;&lt;!-- saved from url=(0070)http://www.eclipse.org/articles/Article-Progress-Monitors/article.html --&gt;怎么正确的使用SWT进度条 摘要 使用进度条监视...

技术代码资料库 368

分布式定时任务(XXL-JOB)整合达梦数据库 带源码

背景 1. 因公司需要可视化管理配置调度任务,查询项目选择XXL-JOB,它是开源项目,入手很简单,详情可以参考官方文档; 2. 因项目的机密性,选择数据库为国内知名的达梦数据库7,与Java项目的整合详情可以参考SpringBoot 集成 达梦数据库 maven依赖本地jar包; 3. 因XXL-JOB暂时没有找到集成达梦数据库的案例,博主自己整合DM7踩过很多的坑,特此整合一个简单可直接...

艾斯-李的博客 3815

使用SSE流式输出(Javaweb前后端实战)

SSE(Server-Sent Events)是一种在Web应用中实现单向实时通信的技术。通过SSE,服务器可以主动向客户端发送更新,而无需客户端不断发起请求。这对于需要实时更新的应用场景(如聊天应用、实时数据监控等)非常有用。(服务端单向传输客户端,长连接)

记得开心一点嘛的博客 1万+

java 进度条 swt,SWT中的进度条

在进行开发的过程中,经常看到很多软件安装的时候会显示进度,在取消的时候线程也随着取消。所以我们将要进行怎样用线程对进度条进行控制。当单击“开始”按钮时,创建一个线程;当单击取消按钮时,可以结束线程,这样就达到了对线程的控制,不会让线程自生自灭了。先上图: 关键代码如下:package com.wyy.ProgressbarComplex;import org.eclipse.swt.SWT;imp...

weixin_29261711的博客 502

前端埋点的实践

1、前言 开始正文前先介绍一下埋点的概念~,(熟悉的朋友可以略过) 前端埋点: 是一种手段,它的目的是上报相关行为数据,相关人员以数据为依据来分析产品在用户端的使用情况,根据分析出来的结果辅助产品优化、迭代。 BI:商业智能,公司内部做数据分析相关的部门。 2、背景 在流量红利逐渐消失的现在,数据的采集、分析和精细化的运营显得更加重要,所以埋点的需求在互联网产品中是很常见的,目的上面也提到了。我们的追求就是又快又好的做好埋点工作,但是现实却不那么美好;目前我们团队在前端埋点方面存在一些痛点: 在构造埋点字段

Arui_0的博客 1772

java progressbar swt_SWT(JFace)体验之ProgressBar

先看代码:ProgressBarExamples.java复制代码 代码如下:package swt_jface.demo8;import org.eclipse.swt.SWT;import org.eclipse.swt.events.PaintEvent;import org.eclipse.swt.events.PaintListener;import org.eclipse.swt.gr...

weixin_42354108的博客 95

VS2022下C# WPF项目一键打包成独立exe的完整指南

本文提供了一份在Visual Studio 2022中将C# WPF项目一键打包成独立可执行exe文件的完整指南。通过配置项目属性、启用单文件发布和自包含模式,开发者无需依赖第三方工具,即可生成可在未安装.NET运行时的电脑上直接运行的独立程序,极大简化了桌面应用的分发流程。

weixin_28831399的博客 673

两点调制原理以及RF DAC和PLL SDM两条输入路径理解

特性数据本质原始数字比特流 (0/1)平滑后的预失真波形数据连接对象Σ-Δ调制器 (SDM)的小数输入RF DAC在系统中的角色主调制路径:通过改变PLL分频比产生频率偏移辅助补偿路径:通过RF DAC产生补偿电压,校正PLL失真可否加入延时可以且必须。用于数字时序对齐,对性能无影响。绝对不可以。会导致补偿失配,严重破坏信号频谱。功能目标实现数字域的频率调制确保模拟域的波形和频谱完美因此,在您所描述的这种先进发射机架构中,2-point数据是数字指令,送给SDM;

m0_49540263的博客 605

java swt 多线程_SWT中多线程(Thread)控制进度(ProgressBar)条示例 | 学步园

/** @(#)TestSWTThreadTaskConsole.java 1.0 09/03/26*/package cn.edu.tsinghua.cs.keg.andy.swt;import org.eclipse.swt.SWT;import org.eclipse.swt.events.SelectionAdapter;import org.eclipse.swt.events.Sele...

weixin_42367464的博客 273

从通用到定制:营销Agent如何跨越数据鸿沟,实现对话SOP的个性化飞跃

从通用到定制:营销Agent如何跨越数据鸿沟,实现对话SOP的个性化飞跃

丨汀、的博客 656

SWT/Jface ProgressBar-进度条(转载自:《Eclipse SWT/JFACE 核心应用》 清华大学出版社 9.7 进度条(ProgressBar))

import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.ProgressBar; import org.eclipse.swt.widgets.Shell; pub

Hello Eclipse Plugin 黑夜 2067

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

java swt线程_Java SWT线程

在SWT的线程开发中,基本思路是:将前台和后台分开为两个类;为后台处理开辟一个线程,让前台和后台处理相互不受影响;前台提供一些组件的操作方法,后台调用方法,并将执行情况写入到前台的组件中显示。在SWT线程开发中,如果使用一个线程去访问另一个线程,则需要使用到Display对象的asyncExce方法,或者syncExce方法;在关闭前台窗口时,需要将后台工作停止。由于是多线程,前台窗口关闭后,后台...

weixin_30482027的博客 148

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

SWT中的UI线程

SWT作为一个桌面程序,比普通的Java程序 要多一个UI线程,UI线程负责不断地画出显示的UI控件,当然这个UI线程还要负责事件的处理。什么是事件呢?当单击按钮或者是按下键盘,系统都会生成一个事件放在事件队列中,接下来UI线程按照顺序处理队列中的事件。SWT中的Display对象就是一个UI线程,并且负责管理队列中的事件。

wyy6713的专栏 1167

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

SWT中多线程(Thread)控制进度(ProgressBar)条示例

/* * @(#)TestSWTThreadTaskConsole.java 1.0 09/03/26 */package cn.edu.tsinghua.cs.keg.andy.swt;import org.eclipse.swt.SWT;import org.eclipse.swt.events.SelectionAdapter;import org.eclipse.swt.events.

CICS Performance Tuning on z/OS and Android Study 2897

ProgressBar进度条

此处有线程的相关操作——(尚未学习)进度条通常要与线程同时使用,即后台运行一个线程,同时将后台程序运行的状态以进度条的方式显示出来。import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.*; import org.eclipse.swt.layout.*; public class G{ public static void mai...

Grace_1203的博客 324

Eclipse SWT/JFace核心应用——SWT多线程程序设计

SWT中的UI线程     SWT作为一种桌面程序,比普通的Java程序要多一个UI线程,UI线程负责不断地画出显示的UI控件,当然这个UI线程还要负责事件的处理。什么是事件呢?例如单击按钮或是按下键盘,系统都会生成一个事件放在事件队列中,即接下来UI线程按顺序处理队列中的事件。SWT中Display对象就是一个UI线程,并负责管理队列中的事件。 以下代码,读者并不陌生,在之前使用的SWT程序

sea_wave2011的专栏 1167

SWT实践遇到的问题及解决

最近花了三天的时间写了我的第一个SWT的程序,由于是第一次,所有遇到了一些问题,总结在这里。 程序描述:程序运行后要在后台进行长时间的数据库操作,同时将一些状态信息及时显示在界面上。 开始的做法是直接写代码,界面代码和后台代码混杂在一起,后台边运行边更新界面信息,这样做的结果是,一旦程序运行了,界面就不能在有任何鼠标点击或者切换的操作系统的其它文件夹在回来,否则界面就死掉了。 其实,当SWT程...

leoogle 304

java rcp中lable设置透明,Eclipse RCP应用程序 - 自定义启动屏幕

I'm currently developing an Eclipse RCP application, in which I'm trying to implement a custom splash screen handler, sporting a progress bar (behavior similar to the default progress bar you can defi...

weixin_33782854的博客 191

一个仿 Eclipse 欢迎窗口的代码 - FormLayout典型示例

一个仿 Eclipse 欢迎窗口的代码 一个背景图片,最下方是一个进度条,上面有一个label,显示一些信息 技术点总结: 一、窗口居中 二、Form布局 三、SWT UI线程调度(本例实现了一个假的),注意到,只有UI线程才能操作UI的控件。 在别的Windows中 new WelcomeWindow().open()即可,此Windows执行完加载任务后会自动关闭。

KimSoft's Blog 2798

SWT/Jface 启用Progress view

1)  Perspective 添加 PropressView: org.eclipse.ui.views.ProgressView;        2)  ApplicationWorkbenchWindowAdvisor 的 preWindowOpen()中设置IWorkbenchWindowConfigurer configurer=getWindowConfigurer();     ...

zhymin77的专栏 181
上一篇: SWT 中的拖放功能
下一篇: java 使用 Comparator接口 进行多种情况排序
danning
博客等级 码龄22年 5粉丝 72原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值