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样式),另外一个进度条通过线程处理长时间的任务,并设定进度条的信息。
进度条有不同的样式,在程序中,开发人员可以控制进度条的进度,执行某些长时间的操作。
分享到:
相关推荐
2. **扩展组件**:除了基本组件,SWT还提供了一些更复杂的组件,如树形视图(Tree),表格(Table),进度条(ProgressBar),滑块(Slider)等。这些组件增强了用户界面的交互性和信息展示能力。例如,`Tree`用于...
本篇文章将重点介绍如何使用SWT和JFace中的ProgressBar组件,以及如何通过代码实现其不同模式和样式。 `ProgressBar` 是一个非常实用的控件,通常用于显示任务的进度或在执行长时间操作时提供反馈。在上述示例中,...
1. **SWT组件**:SWT提供了大量的组件,如按钮(Button)、文本框(Text)、列表(List)、表格(Table)、树形视图(Tree)、进度条(ProgressBar)等。理解每个组件的用法和属性设置,可以创建丰富的用户界面。 2...
SWT库提供了丰富的组件,包括但不限于:按钮(Button)、文本域(Text)、组合框(ComboBox)、树视图(Tree)、列表视图(List)、进度条(ProgressBar)等。这些组件允许开发者构建各种复杂的用户界面,满足不同...
除了基本的GUI组件,SWT还提供了许多高级功能,比如对话框(Dialogs)、表格(Table)、树形视图(Tree)、进度条(ProgressBar)、菜单(Menu)等。开发者可以根据需求组合使用这些组件,创建出复杂且功能强大的...
3. **高级控件**:例如列表(List)、树(Tree)、表格(Table)、进度条(ProgressBar)、日历(Calendar)等,这些控件增强了用户交互和数据展示能力。 4. **对话框(Dialog)**:如消息对话框 MessageBox、输入对话框 ...
- **ProgressBar**: 进度条,用于指示操作的完成程度。 - **Table**: 表格,用于显示数据集合。 - **Tree**: 树形结构,用于展示层次关系的数据。 - **Browser**: 浏览器控件,用于显示网页内容。 - **Tray**: 系统...
- **SWT布局管理**:SWT提供了多种布局管理器来帮助开发者管理组件的位置和大小。 - **FillLayout**:使所有控件填满容器。 - **GridLayout**:将容器划分为网格,每个网格可以放置一个控件。 - **RowLayout**:...
###### 7.1.2 滑块(Slider),标尺(Scale)和进度条(ProgressBar) - **Slider**:用户可以通过拖动滑块来输入值。 - **Scale**:类似于滑块,但通常显示更多的刻度。 - **ProgressBar**:显示任务完成的进度。 #####...
SWT API的核心在于它提供了各种控件(widgets),如按钮、文本框、列表、树形视图等,这些控件可以直接映射到操作系统底层的原生窗口组件,因此具有很好的性能和操作系统兼容性。在Eclipse 3.6中,SWT API进一步完善...
- **进度条(ProgressBar)**:演示进度条的使用,通常用于表示任务执行的进度。 - **事件处理(Event Handling)**:通过代码示例解释如何添加事件监听器并响应用户操作。 ### 开发流程 1. **环境配置**:安装...
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)...
ProgressBar progressBar = new ProgressBar(shell, SWT.HORIZONTAL); ``` 总的来说,这个SWT和JFace简易浏览器示例展示了如何利用Eclipse提供的API来创建一个功能基本的Web浏览器,包括加载页面、监听地址变化、...