- 浏览: 564234 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (344)
- ··············未分类············· (33)
- Eclipse 插件 (15)
- EDA 工具 (1)
- Linux/Unix (3)
- Java (43)
- Java Applet (1)
- Java Draw2d (22)
- Java Draw2d version2 (6)
- Java GEF (2)
- Java SWT (21)
- Java SWT Image 图像 (21)
- Java SWT Tree (16)
- Java SWT Table (4)
- Java SWT TableViewer (11)
- Java SWTbot (4)
- Java Test (2)
- Java Thread 多线程 (22)
- Java Zest (5)
- RC2_3S400学习笔记 (16)
- tcl 脚本 (10)
- Verilog (7)
- XML (6)
- 国家 (5)
- 感叹 (4)
- 面试题 (9)
- 生活 (36)
- 足球 世界杯 (8)
- 老公看你的 (3)
- web开发 (1)
- 数据结构——图 (7)
- c language (1)
最新评论
-
zxjlwt:
路过素人派http://surenpi.com
SWT 树的事件 SWT.Selection SWT.CHECK SWT.DefaultSelection -
hj01kkk:
1楼用法正解
JDK 7 中的 Fork/Join 模式 -
fish_no7:
使用 new SortTask().fork()
JDK 7 中的 Fork/Join 模式 -
wpf523:
mark
Java 多线程例子6 线程安全 线程同步 同步代码块 同步函数 -
uniquejava:
以前碰到过,估计是在icu包中实现了双击自动选中一段文本的功能 ...
java.lang.NoClassDefFoundError: com/ibm/icu/text/BreakIterator
JFace中的提供的ProgressMonitorDialog对话框,来表示正在运行的Task,还是比较方便,可设置一共的Task有多少步,现在完成了多少,还有多少没有完成的。
来个例子吧:
public class TT { static ProgressMonitorDialog dialog; public static void main(String[] args) { IRunnableWithProgress runnable = new IRunnableWithProgress() { public void run(IProgressMonitor monitor) { // monitor.beginTask("begin" + "...... ",10); monitor.beginTask("begin" + "...... ",IProgressMonitor.UNKNOWN); monitor.setTaskName("Running cmd XXXX."); int i = 0; while(i++ < 10) { if(monitor.isCanceled()) { monitor.setTaskName("Canceled cmd XXXX."); break; } try { Thread.sleep(1000); monitor.setTaskName("Running cmd XXXX."); monitor.subTask("Running step " +i + " ."); monitor.worked(1); } catch (InterruptedException e) { e.printStackTrace(); } } monitor.done(); } }; try { dialog = new ProgressMonitorDialog(null); dialog.run(true, true, runnable); } catch (Exception e2) { e2.printStackTrace(); } } }
使用IProgressMonitor.UNKNOWN参数,是不知道Task有多少步,Dialog是程序级的对话框,也就模式对话框了。
有的时候想搞一些特别的东东来表示程序中有Task正在运行,这里采用滚动的标记字符来表示Task的运行:
例子:
public class Tsdf { public static Timer t; static Display display = Display.getDefault(); public static void main(String[] args) { Shell shell = new Shell(); shell.setBounds(10,10,150,150); shell.setLayout(new RowLayout(SWT.VERTICAL)); final Label l = new Label(shell, SWT.NONE); l.setText("Running"); final String s = "<<<" + l.getText(); final int[] index = new int[]{0}; Button brun = new Button(shell, SWT.NONE); brun.setText("run"); Button bstop = new Button(shell, SWT.NONE); bstop.setText("stop"); brun.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { if(t != null) { return; } t = new Timer(true); t.scheduleAtFixedRate(new TimerTask() { public void run() { System.out.println("running time " + System.currentTimeMillis()); display.asyncExec(new Runnable() { public void run() { index[0] = (index[0]<3)?index[0]+1:0; if(!l.isDisposed()) { l.setText(s.substring(index[0], s.length()-3+index[0])); } } }); } }, 0, 300); } }); bstop.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { if( t == null) return; t.cancel(); t = null; l.setText("stop"); System.out.println("Stop time " + System.currentTimeMillis()); } }); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } }
结果:
运行的效果,label中“<<<Runn”,“<<Runni”,“<Runnin”,“Running”交替出现,给人一种动态的效果。
评论
2 楼
xmind
2011-09-22
是代码一还是代码二?
有没有import对?
有没有import对?
引用
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
1 楼
lizhensan
2011-09-10
为什么我的进度条不懂呢?拷贝你的代码
发表评论
-
定制tooltip
2013-10-06 18:17 750public class HelloToolTip { ... -
java SWT StackLayout
2013-09-16 17:40 863public class UsingStackLayout ... -
JFace snippet
2013-01-31 11:00 1415附件有org.eclipse.jface.snippets, ... -
SWT 中Button和Label重叠放置
2011-12-30 17:18 2714写了一个小例子: public class Snipp ... -
SWT DND的Snippet 和 剪贴板
2011-11-15 19:50 2265链接:http://www.eclipse.org/swt/s ... -
display.getSystemColor 中的颜色
2011-10-28 20:41 1274记得以前好像记录过,就是找不到了。 public c ... -
SWT程序需要导入的jar
2011-10-12 18:04 11901,org.eclipse.swt.win32.x86_xxx ... -
SWT 的对话框模式与非模式
2011-05-24 16:03 1996关键字:SWT 对话框 模式 非模式 SWT.MODELESS ... -
Java SWT SWTChart坐标图
2010-12-13 14:02 4551关键字: SWTChart 坐标图 链接:http://w ... -
java.lang.NoClassDefFoundError: com/ibm/icu/text/BreakIterator
2010-11-25 14:00 3223关键字:java.lang.NoClassDefFoundE ... -
类似百度和谷歌那样的自动提示组合框
2010-09-30 14:04 1380问题:http://www.iteye.com/problem ... -
SWT表格列随着控件变化自动变化
2010-07-08 17:23 2130源程序来自:snippet77 /********** ... -
一个日历程序 可农历到公历 公历到农历 第几周 显示节气
2010-07-02 20:01 2628public class Sample3 { privat ... -
一个简单的时钟程序
2010-07-02 19:24 1132public class Sample2 { privat ... -
Image中的transformation理解【swt.snippet】
2010-07-02 17:48 1545/****************************** ... -
计分器
2010-07-02 17:28 1176代码: public class Sample1 { p ... -
SWT资料
2010-06-30 19:24 870SWT-jface一些例子: http://www.j ... -
事件管理器 4个象限【还没有完成】
2010-06-23 17:12 11831,改完成了一个大概的样子,还要把Text改成List,可以添 ... -
利用SWT内部的图标
2010-06-23 16:55 2949import org.eclipse.swt.SWT; im ... -
SWT 浏览器
2010-06-23 16:48 2805这个来自书上的一个例子: package firstSWT ...
相关推荐
在SWT中,我们可以使用`Display.asyncExec`或`Display.syncExec`方法来在事件调度线程中执行代码,而使用`new Thread()`来创建并启动新的后台线程来执行耗时任务。以下是一个基本的示例: ```java Button button = ...
9.9.9 用键盘控制表格(TableCursor) 189 9.9.10 带有进度条的表格 191 9.9.11 表格小结 192 9.10 树(Tree) 192 9.10.1 不同样式的树 193 9.10.2 为树添加图标 193 9.10.3 可编辑的树 196 9.10.4 ...
- **ProgressMonitorDialog**: 提供进度条对话框,可以跟踪后台任务的执行进度。 ### 应用建议 - 使用SWTDesigner作为可视化设计工具,可以提高开发效率,减少手写代码的工作量。 - 在设计界面之前先草图构思,有...
- 使用ProgressMonitorDialog进行任务执行时的进度显示。 - Job类用于后台任务处理。 #### 13. 使用第三方JAR - **概述**: 在Eclipse RCP项目中使用第三方库。 - **步骤**: - 将JAR添加到项目的构建路径中。 - ...
对SWT/Jface的进度条(ProgressMonitorDialog)进行封装,使下载文件更方便调用. DownloadProgressBar 是单个文件下载类 MultiDownloadProgressBar 是多个文件下载类 Test开头的类是测试类 支持下载完毕后自动关闭流,...
ProgressMonitorDialog dialog = new ProgressMonitorDialog(getShell()); dialog.run(true, false, op); // 显示更新信息 UpdateManagerDialog.open(getShell()); } catch (InvocationTargetException e) { ...
- **ProgressMonitorDialog**:显示任务执行进度。 #### 10. SWT的事件(widget事件) SWT提供了一套完善的事件处理机制,用于响应用户的操作。 ##### 10.1 GUI系统的事件机制: SWT使用基于监听器的模型来处理事件...
- **高级控件**: 书中还介绍了更多高级控件,如ProgressMonitorDialog、BusyIndicator等,这些控件可以帮助开发者处理复杂的应用场景。 - **自定义布局**: 了解如何使用自定义布局来实现更灵活的UI设计。 #### 6. ...