`

Display.asyncExec()用法一则

阅读更多

有时候我们需要对Text Widget输入框中的内容加以验证,如果输入内容不合法,将使用MessageDialog.openError()显示出错信息对话框,关闭对话框之后,焦点重新回到输入出错的Text Widget,并全选输入内容,但是有一个问题,会导致不断弹出错误信息对话框,其原因不得而知,这时使用Display.asyncExec()来解决,该方法会新开一个线程,并在当前所有调用执行完毕之后执行新开的线程

java 代码
  1. PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable(){})  
分享到:
评论

相关推荐

    swt线程冲突与解决

    - 在SWT中,可以使用`Display.asyncExec(Runnable)`方法来实现异步调用。 - 这种方式适用于不需要等待UI操作完成就可以继续执行其他逻辑的场景。 ```java Display.getDefault().asyncExec(new Runnable() { @...

    SWT并发例子(后台耗时线程)

    在SWT中,我们可以使用`Display.asyncExec`或`Display.syncExec`方法来在事件调度线程中执行代码,而使用`new Thread()`来创建并启动新的后台线程来执行耗时任务。以下是一个基本的示例: ```java Button button = ...

    Eclipse插件开发问题

    为了解决这个问题,开发者可以使用`Display.asyncExec`来异步执行UI更新代码。这段代码确保了在Eclipse的UI线程中执行,从而能够正确地获取并操作工作台窗口: ```java PlatformUI.getWorkbench().getDisplay()....

    SWT综合教程及安装指导

    本教程将深入探讨SWT的核心概念、使用方法以及在实际开发中的应用。 一、SWT基础 1. 组件(Widgets):SWT提供了一系列基本组件,如按钮(Button)、文本框(Text)、列表(List)、树(Tree)、表格(Table)等,...

    swt源码以及jar

    例如,可以使用`org.eclipse.swt.widgets.Display`来创建一个新的显示窗口,使用`Shell`类来定义应用程序的主要窗口,使用`Button`、`Text`等类创建各种用户界面元素。同时,SWT还提供了丰富的布局管理器,如`...

    SWT应用的开发实例:没有使用到OSGi

    为了实现程序的逻辑,还需要使用`Thread`或者`Display.asyncExec`、`Display.syncExec`来处理异步任务,确保GUI更新的正确性和响应性。 在没有使用OSGi的情况下,开发者需要自行管理类的加载和依赖关系。这可能意味...

    Graphics Moving Package

    7. **动画框架**:虽然SWT没有内置的动画框架,但开发者可以自定义实现,例如通过使用`Display.syncExec`或`Display.asyncExec`来在 SWT 线程中更新图形状态,实现平滑的动画效果。 8. **布局管理**:SWT 提供了...

    使用Eclipse RCP进行桌面程序开发

    ### 使用Eclipse RCP进行桌面程序开发:详细指南 #### 一、Eclipse RCP简介与快速起步 **Eclipse RCP** (Rich Client Platform) 是一种基于Java的开源框架,用于开发桌面应用程序。自从Eclipse 3.0版本以来,RCP...

    SWT API 资料

    为了实现异步处理,可以使用`Display.asyncExec`和`Display.syncExec`方法,它们能够在正确的线程上下文中执行回调。 ### 9. 高级特性 SWT还提供了许多高级特性,如拖放支持、打印功能、数据库访问、国际化和本地...

    基于swt的小软件

    例如,使用`Display.asyncExec`或`Display.syncExec`方法在GUI线程中更新界面,确保界面操作的线程安全。 **Bank子文件** 在"Bank"这个子文件中,很可能是实现了一款与银行相关的模拟软件,可能包括账户管理、交易...

    swt

    通常,使用Display.asyncExec()和Display.syncExec()方法来确保在正确的线程(即UI线程)中更新界面元素,防止出现线程安全问题。 **学习资源:** 博文链接提到的<https://jose-bing.iteye.com/blog/1264042>是一个...

    java SWT编写的截图程序

    7. **异步执行:** 图像处理可能会消耗一定时间,因此通常在后台线程(通过`Display.asyncExec()`或`Display.syncExec()`)执行,以避免阻塞UI。 **SWT截图程序的优势:** 1. **原生体验:** SWT直接调用操作系统...

    一个eclipse的helloworld的插件

    在`run()`方法中,我们可以调用`Display.getDefault().asyncExec()`来确保UI更新在Eclipse的主线程中执行,然后弹出一个对话框显示"Hello World"。 4. **注册动作** 将`HelloWorldAction`类与`plugin.xml`关联,...

    swt 多线程

    总结来说,SWT的多线程机制是通过Display类提供的`asyncExec`、`syncExec`和`timerExec`方法来实现的,它们允许开发者在不阻塞UI线程的情况下执行后台任务。理解和熟练运用这些方法是构建高效、响应性强的SWT应用的...

Global site tag (gtag.js) - Google Analytics