`
gogoyoyo
  • 浏览: 36793 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

如何在SWT中使鼠标的状态变成忙碌

    博客分类:
  • RCP
阅读更多
Eclipse Plug-in开发离不开与用户的交互,我们往往把用户的鼠标点击之类动作所调用的代码包装成一个Action。例如,如果用户点击了一个Menu Item,那么绑定到这个Menu Item上的Action就会运行,这一切都很直观。但是有的时候,用户触发的操作可能需要很长时间才能完成,比如连接数据库,在这种情况下,就必须把鼠标的状态改为忙碌,这样就可以用沙漏手势提示用户当前操作正在进行,也避免了用户在等待当前操作的时候又去触发其他的操作。那么如何实现这一点呢?Eclipse有一个High-level的实现,也有一个Low-level的实现。因为后者非常简单,而且在大多数情况下也能满足需求,所以这里会介绍后者。

我们可以在org.eclipse.swt.custom包中找到一个BusyIndicator类,它的Java Doc说得好:Support for showing a Busy Cursor during a long running process。该类只有一个static的方法,让我们来看看它的签名:



public static void showWhile(Display display, Runnable runnable)


其中,display参数指定了Busy Cursor应该显示在哪里,如果传入null,则默认使用当前线程的当前Display;runnable就是封装了我们要执行的操作的对象。这个方法会执行runnable中的操作,同时显示Busy Cursor,当runnable结束后,鼠标的状态就会恢复为正常。OK,让我们来看一个例子:


public class DoubleClickTreeNodeAction extends Action {

    /*
     * (non-Javadoc)
     * 
     * @see org.eclipse.jface.action.Action#run()
     */
    public void run() {
        // get Display from your own plug-in
        BusyIndicator.showWhile(Activator.getDefault().getWorkbench()
                .getDisplay(), new Runnable() {
            public void run() {
                performAction();
            }
        });
    }

    private void performAction() {
        // connecting to database...
    }

}


怎么样,是不是很简单呢?

分享到:
评论

相关推荐

    在SWING、SWT中嵌入浏览器

    这篇博客文章“在SWING、SWT中嵌入浏览器”就探讨了如何在Java应用中实现这一功能。 首先,SWING是Java Foundation Classes (JFC)的一部分,提供了丰富的组件和布局管理器来构建复杂的用户界面。尽管SWING本身并不...

    使Excel嵌入到SWT窗口中

    使Excel嵌入到SWT窗口中 知识点一:Eclipse版本和jdk版本的选择 在本例中,我们使用的是Eclipse 3.3.1版本和jdk 5.0版本。Eclipse是一个开源的集成开发环境(IDE),它支持多种编程语言,包括Java、C++、Python等...

    SWT中文教程.rar

    SWT提供多种布局管理器,如FillLayout、GridLayout、RowLayout和 MigLayout,帮助在组件之间分配空间,使界面看起来整洁有序。 4. **事件和监听器** SWT事件模型允许开发者响应用户交互,如点击按钮、选择列表项...

    swt-64.rar_64位swt_64的SWT_SWT64_swt.jar 64位_swt64位

    开发者需要64位的Java环境,并将“swt-64.jar”添加到类路径中,以便在他们的应用中使用SWT。通过使用SWT,他们可以创建出既美观又响应迅速的桌面应用,这些应用能够无缝地融入用户的64位Windows环境。

    swt事件处理的编码实现

    在SWT中,我们可以通过实现`MouseListener`接口来监听鼠标事件。`MouseListener`接口包含三个方法:`mouseDown()`, `mouseUp()`, 和 `mouseDoubleClick()`。在这个例子中,我们关心的是`mouseDoubleClick()`方法。...

    SWT 中嵌入Word 控件应用

    这篇博客"SWT中嵌入Word控件应用"可能就是讲述如何在Java SWT界面中集成Word编辑功能,使得用户可以直接在应用程序内部创建、编辑和查看Word文档。 SWT是Eclipse开源项目的一部分,它为Java开发者提供了一套用于...

    在swt开发中实现的一个小小的日历对话框

    ### 在SWT开发中实现的日历对话框 #### 概述 SWT(Standard Widget Toolkit)是Eclipse平台上的一种用于创建图形用户界面的工具包。它提供了丰富的组件库,允许开发者构建高性能、外观本地化的应用程序。本文将...

    swt/Jface中文教程

    而JFace则建立在SWT之上,提供更高层次的抽象和简化GUI开发的过程。 - **形成的原因**:SWT和JFace的出现主要是为了克服早期Java GUI框架Swing的一些局限性,比如性能问题、跨平台一致性问题以及对本地操作系统的...

    SWT Table单元格编辑功能

    其中,`Table`控件是SWT中最常用的数据展示组件之一,尤其适用于展示表格形式的数据。本文将深入探讨SWT `Table`控件中的单元格编辑功能,并通过实例代码进行详细解析。 #### 1. 创建TableEditor `TableEditor`是...

    SWT插件中文教程SWT常用方法

    首先,我们需要了解SWT插件在Eclipse开发环境中的地位。Eclipse是一个开放源代码的集成开发环境(IDE),而SWT插件则是其提供的一种用于构建用户界面的工具。它通过JNI(Java Native Interface)与操作系统底层进行...

    SWT JFace 按键、事件、监听

    在SWT中,键盘事件的处理非常关键,尤其是对于那些依赖于键盘输入的应用程序。本文将详细介绍SWT中的按键及其对应的常量表、`KeyEvent`事件和`VerifyEvent`事件的相关知识,并通过示例进行说明。 #### 按键与对应的...

    swt资源释放问题

    在 SWT 中,为了使资源管理方便而规定:当父资源被释放时,它要负责释放属于自己的子资源。Display 实例的释放可以使用 dispose() 方法。当一个 Display 实例被释放时,所有存在于这个 UI 线程中的 Shell 窗口都会被...

    SWT配置 SWT配置 SWT配置 SWT配置 SWT配置

    在任何基于SWT的Java项目中,首要任务就是将SWT JAR文件添加到项目的Classpath中。这一步骤确保了编译器能够识别SWT类和方法。具体操作如下: - **创建Java项目**:首先,在IDE中创建一个新的Java项目。 - **指定...

    SWT无边框窗体实现鼠标拖动移动

    SWT无边框窗体实现鼠标拖动移动,并添加右键菜单关闭功能

    SWT源码 swt.jar

    使用SWT的开发者需要了解如何在项目中正确引入"swt.jar",配置项目的构建路径,并根据目标平台选择正确的SWT库。此外,由于SWT与操作系统紧密相关,所以在跨平台开发时需要特别注意兼容性和适配问题。 总的来说,...

    如何在SWT中使用AWT、SWING组件

    在SWT中使用AWT组件,你需要依赖`org.eclipse.swt.awt`包。通过` SWT_AWT`桥接类,可以将AWT组件嵌入到SWT环境中。以下是一个简单的例子: ```java Display display = new Display(); Shell shell = new Shell...

    swt table 实现换行

    根据提供的文件信息,可以看出本文主要讨论的是如何在 SWT (Standard Widget Toolkit) 的 Table 控件中实现文本换行的功能。SWT 是一个用于开发基于 Java 的桌面应用程序的工具包,它提供了丰富的用户界面组件来帮助...

    SWT中文手册

    非常不错的java swt 中文文档

    GPS实时定位,SWT图形界面

    总的来说,实现GPS实时定位,SWT图形界面涉及到的技术点包括GPS定位原理、SWT库的使用、事件驱动编程、多线程(因为位置更新可能在后台线程中进行),以及可能的地图API集成。通过这样的应用,用户可以直观地查看到...

    SWT中bean与控件的数据绑定

    在SWT中,数据绑定是一种将业务对象(通常称为bean)的属性与UI控件的值进行关联的技术,使得UI的变化能够实时反映到数据模型中,反之亦然。这种双向绑定机制极大地简化了UI与数据模型之间的交互,提高了代码的...

Global site tag (gtag.js) - Google Analytics