频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

Eclipse开发经典教程:展现组件

来源: 作者:佚名 出处:巧巧读书 2008-02-19 进入讨论组
上一页 1 2 3 4 5 6 

进度条组件ProgressBar

ProgressBar是SWT中的进度条组件。进度条提供了比较长时间操作的进度信息。添加ProgressBar组件的步骤如下:

1. 创建ProgressBar对象,并指定创建的样式,例如“ProgressBar pb1 = new ProgressBar (shell, SWT.HORIZONTAL | SWT.SMOOTH);”。
2. 设置ProgressBar的最大值和最小值,例如“pb1.setMaximum(30);”。
3. 在长时间的任务中设置当前进度条的进度,例如“progressBar.setSelection (progressBar.getSelection() + 1);”。

进度条能反映当前的工作进度,为了配合处理长时间的任务,进度条经常配合线程使用,以免产生阻塞影响界面的操作。为了更好地掌握ProgressBar组件,下面通过一个实例演示如何创建ProgressBar组件,代码如例程6所示。

例程6 ProgressBarExample.java

public class ProgressBarExample { public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new GridLayout()); //添加平滑的进度条 ProgressBar pb1 = new ProgressBar(shell, SWT.HORIZONTAL | SWT.SMOOTH); pb1.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); //设置进度条的最小值 pb1.setMinimum(0); //设置进度条的最大值 pb1.setMaximum(30); //添加自动递增的进度条 ProgressBar pb2 = new ProgressBar(shell, SWT.HORIZONTAL | SWT.INDETERMINATE); pb2.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); //添加线程,在线程中处理长时间的任务,并最终反映在平滑进度条上 new LongRunningOperation(display, pb1).start(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } } } class LongRunningOperation extends Thread { private Display display; private ProgressBar progressBar; public LongRunningOperation(Display display, ProgressBar progressBar) { this.display = display; this.progressBar = progressBar; } public void run() { //模仿长时间的任务 for (int i = 0; i < 30; i++) { try { Thread.sleep(1000); } catch (InterruptedException e) { } display.asyncExec(new Runnable() { public void run() { if (progressBar.isDisposed()) return; //进度条递增 progressBar.setSelection(progressBar.getSelection() + 1); } }); } } }

以上代码添加了两个进度条,一个进度条为自动显示增加进度的信息(SWT.INDETERMINAT样式),另外一个进度条通过线程处理长时间的任务,并设定进度条的信息。程序运行效果如图6所示。

Eclipse开发经典教程:展现组件(图六)
图6 ProgressBar组件


进度条有不同的样式,在程序中,开发人员可以控制进度条的进度,执行某些长时间的操作。

Web: http://www.qqread.com/java/2008/02/r397064.html 更多文章 更多内容请看Eclipse应用技术ASP.NET教程Wlan组网----家庭专题专题,或进入讨论组讨论。
上一页 1 2 3 4 5 6 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章