`

SWT进度条组件ProgressBar

    博客分类:
  • SWT
阅读更多

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

(1)创建ProgressBar对象,并指定创建的样式,例如“ProgressBar pb1 = new ProgressBar (shell, SWT.HORIZONTAL | SWT.SMOOTH);”。

(2)设置ProgressBar的最大值和最小值,例如“pb1.setMaximum(30);”。

(3)在长时间的任务中设置当前进度条的进度,例如“progressBar.setSelection (progress Bar.getSelection() + 1);”。

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

 

  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样式),另外一个进度条通过线程处理长时间的任务,并设定进度条的信息。

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

分享到:
评论

相关推荐

    SWT开发组件demo

    2. **扩展组件**:除了基本组件,SWT还提供了一些更复杂的组件,如树形视图(Tree),表格(Table),进度条(ProgressBar),滑块(Slider)等。这些组件增强了用户界面的交互性和信息展示能力。例如,`Tree`用于...

    SWT(JFace)体验之ProgressBar

    本篇文章将重点介绍如何使用SWT和JFace中的ProgressBar组件,以及如何通过代码实现其不同模式和样式。 `ProgressBar` 是一个非常实用的控件,通常用于显示任务的进度或在执行长时间操作时提供反馈。在上述示例中,...

    swt高级密笈源码swt

    1. **SWT组件**:SWT提供了大量的组件,如按钮(Button)、文本框(Text)、列表(List)、表格(Table)、树形视图(Tree)、进度条(ProgressBar)等。理解每个组件的用法和属性设置,可以创建丰富的用户界面。 2...

    SWT.rar_ java swt_SWT_java swt_java s_java swt

    SWT库提供了丰富的组件,包括但不限于:按钮(Button)、文本域(Text)、组合框(ComboBox)、树视图(Tree)、列表视图(List)、进度条(ProgressBar)等。这些组件允许开发者构建各种复杂的用户界面,满足不同...

    swt源码以及jar

    除了基本的GUI组件,SWT还提供了许多高级功能,比如对话框(Dialogs)、表格(Table)、树形视图(Tree)、进度条(ProgressBar)、菜单(Menu)等。开发者可以根据需求组合使用这些组件,创建出复杂且功能强大的...

    eclipse官方网站上的SWT例子(用306个)

    3. **高级控件**:例如列表(List)、树(Tree)、表格(Table)、进度条(ProgressBar)、日历(Calendar)等,这些控件增强了用户交互和数据展示能力。 4. **对话框(Dialog)**:如消息对话框 MessageBox、输入对话框 ...

    JFace_SWT.doc

    - **ProgressBar**: 进度条,用于指示操作的完成程度。 - **Table**: 表格,用于显示数据集合。 - **Tree**: 树形结构,用于展示层次关系的数据。 - **Browser**: 浏览器控件,用于显示网页内容。 - **Tray**: 系统...

    SWT桌面程序开发实例图解教程

    - **SWT布局管理**:SWT提供了多种布局管理器来帮助开发者管理组件的位置和大小。 - **FillLayout**:使所有控件填满容器。 - **GridLayout**:将容器划分为网格,每个网格可以放置一个控件。 - **RowLayout**:...

    SWT 编 程 总 结

    ###### 7.1.2 滑块(Slider),标尺(Scale)和进度条(ProgressBar) - **Slider**:用户可以通过拖动滑块来输入值。 - **Scale**:类似于滑块,但通常显示更多的刻度。 - **ProgressBar**:显示任务完成的进度。 #####...

    swt-api-eclipse3.6

    SWT API的核心在于它提供了各种控件(widgets),如按钮、文本框、列表、树形视图等,这些控件可以直接映射到操作系统底层的原生窗口组件,因此具有很好的性能和操作系统兼容性。在Eclipse 3.6中,SWT API进一步完善...

    eswt 例子 实例 j2me

    - **进度条(ProgressBar)**:演示进度条的使用,通常用于表示任务执行的进度。 - **事件处理(Event Handling)**:通过代码示例解释如何添加事件监听器并响应用户操作。 ### 开发流程 1. **环境配置**:安装...

    Eclipse_Swt_Jface_核心应用_部分19

    9.7 进度条(ProgressBar) 169 9.8 对话框 170 9.8.1 消息提示框(MessageBox) 171 9.8.2 文件目录对话框(DirectoryDialog) 172 9.8.3 文件对话框(FileDialog) 173 9.8.4 颜色对话框(ColorDialog)...

    SWT(JFace) 简易浏览器 制作实现代码第1/2页

    ProgressBar progressBar = new ProgressBar(shell, SWT.HORIZONTAL); ``` 总的来说,这个SWT和JFace简易浏览器示例展示了如何利用Eclipse提供的API来创建一个功能基本的Web浏览器,包括加载页面、监听地址变化、...

Global site tag (gtag.js) - Google Analytics