快速业务通道

Eclipse开发经典教程之展现组件 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
Display display = new Display(); Shell shell = new Shell(display); Scale scale; Text value; public ScaleExample() { shell.setLayout(new GridLayout(1, true)); Label label = new Label(shell, SWT.NULL); label.setText ("Volume:"); //添加Scale组件 scale = new Scale(shell, SWT.VERTICAL); scale.setBounds(0, 0, 40, 200); //设置Scale的最大值 scale.setMaximum(20); //设置Scale的最小值 scale.setMinimum(0); //设置Scale的增量值 scale.setPageIncrement(5); //添加Scale的事件监听 器 scale.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { int perspectiveValue = scale.getMaximum() - scale.getSelection() + scale.getMinimum(); value.setText("Vol: " + perspectiveValue); } }); value = new Text(shell, SWT.BORDER | SWT.SINGLE); value.setEditable(false); scale.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER)); value.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER)); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (! display.readAndDispatch()) { display.sleep(); } } display.dispose(); } private void init() { } public static void main(String[] args) { new ScaleExample(); } }

上例中 ,通过事件监听器监听当前选择的刻度,并用Text组件显示出来,程序运行效果如图5所示。

Eclipse开发经典教程之展现组件 - 编程入门网

图5 Scale组件

Scale组件能够精确的显示刻度,用户可以设制好刻度的范围,这是非 常有用的。

Eclipse开发经典教程之展现组件(6)

时间:2011-04-11 阿甘

进度条组件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 LongRunningOperati

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号