`
dananhai
  • 浏览: 91560 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

swt中使用ole对象

    博客分类:
  • java
阅读更多
   在一个视图中包含一个Active X控件需要两个对象的支持,即一个OleFrame和一个OleClientSite对象。如果需要创建一个OLE应用,需要先后创建他们。创建OleFrame对象比较简单,OleFrame类定义在org.eclipse.swt.ole.win32中,创建OleFrame对象只需要简单的new就可以,如下:
    OleFrame frame = new OleFrame(parent, SWT.NONE);
在这个构造函数中,第一个参数指的是该OleFrame的母窗口部件,即Active X控件将要被嵌入的窗口部件。
    在OleFrame的基础上就可以创建OleClientSite对象,创建该对象需要知道控件的programID.
    OleClientSite client = new OleClientSite(frame,SWT.NONE,"Shell.Explorer.2");
    创建对象后,还需要激活,才能够在RCP程序中对这些OLE对象进行操作。如下:
client.doVerb(OLE.OLEIVERB_SHOW);
然后,我们需要操作这个Active X控件,调用它的方法,或者设置它的属性。比如在此例中,我们需要调用浏览器控件的navigate方法,以便我们的浏览器控件显示www.blogjava.net的主页。对Active X控件的操作通过OleAutomation对象来实现,创建OleAutomation对象的方法如下:
       OleAutomation automation = new OleAutomation(client);
    再通过automation.invoke()来调用Active X控件的方法,其中invoke方法有几种重载形式,有只带一个int参数的,也有带int和Variant[]两个参数的,其中的int参数表示要调用的Active X控件的方法的ID,Variant[]参数就是要传递给Active X控件的方法的参数。

这里我们要说一说Variant类,这个类提供了多个构造函数,可以方便的将int,float,long,double,string等等基本数据类型封装为Variant,比如我们要传递给浏览器控件的navigate方法的地址参数:
   Variant url = new Variant("http://www.blogjava.net");
   automation.invoke(104, new Variant[]{url});

代码示例:
   
   OleFrame frame = new OleFrame(parent, SWT.NONE);
   OleClientSite client = new OleClientSite(((OleView)vw).frame,SWT.NONE,"Shell.Explorer.2");
   client.doVerb(OLE.OLEIVERB_SHOW);
   OleAutomation oa = new OleAutomation(client);
   Variant str = new Variant("http://www.blogjava.net/");
   oa.invoke(104, new Variant[]{str});
分享到:
评论

相关推荐

    SWT EXCEL OLE

    下面是本例中使用的关键技术和类: * OleFrame:是一个 Composite,用于放置 OLE 控件。 * OleClientSite:提供一个场所用于把 OLE 对象嵌入到容器中。 * doVerb():是一个方法,用于对 OLE 对象进行操作。在本例中...

    使Excel嵌入到SWT窗口中

    使Excel嵌入到SWT窗口中 知识点一:Eclipse版本和jdk版本的选择 ...同时,我们也讨论了Eclipse版本和jdk版本的选择、SWT的使用、OLE技术的使用、OleFrame和OleClientSite的使用、OLE对象的Id和OLE对象的动作等知识点。

    Java通过Ole调用Windows Media Player

    1. **导入必要的库**:为了在Java中使用SWT和Ole,需要引入`org.eclipse.swt.*`和`org.eclipse.swt.ole.win32.*`库。JNA库也需要被包含,如果选择使用JNA直接访问COM接口。 2. **创建Ole初始环境**:在Java程序中,...

    swt资源释放问题

    但是, SWT 中的资源释放问题是一件棘手的事情。如果不正确地释放资源,可能会导致内存泄露、程序崩溃等问题。下面,我们将详细介绍 SWT 中的资源释放问题。 一、Display 实例的创建和释放 在 SWT 中,Display ...

    第6章 SWT概述

    6. **org.eclipse.swt.ole.win32**: 为Windows平台提供了OLE(Object Linking and Embedding)支持,允许在SWT程序中嵌入其他应用程序,如IE浏览器或Office组件。 除了上述核心包,SWT还提供了其他的辅助包,如org....

    swt学习笔记摘录(入门程序)

    SWT(Standard Widget Toolkit)是Java中用于构建图形用户界面(GUI)的一种库,与AWT和Swing不同,SWT直接与操作系统底层交互,提供更原生的外观和性能。SWT是Eclipse IDE的基础组件,用于创建高效、美观的桌面应用...

    swing 嵌入word

    4. 利用OLE嵌入Word:SWT提供了一个`org.eclipse.swt.ole.windows.OleClientSite`类,可以用来创建和控制嵌入的OLE对象,例如Word文档。 ```java import org.eclipse.swt.ole.win32.OleClientSite; import org....

    jacob调用ocx控件灾难性故障

    在SWT中,可以创建一个`OleFrame`来承载OCX控件,然后创建`OleClientSite`和`OleAutomation`对象来与控件进行交互。以下是一个简单的示例: ```java import java.util.HashMap; import java.util.Map; import org....

    Eclipse_Swt_Jface_核心应用_部分19

    7.5.3 使用FormAttachment对象 114 7.5.4 设置控件的相对位置 115 7.6 StackLayout(堆栈式布局) 115 7.7 自定义布局管理器 117 7.7.1 布局的基本原理 117 7.7.2 布局计算的常用方法 118 7.7.3 自定义...

    eclipse开发技术详解第4章

    6. `org.eclipse.swt.ole`:支持OLE(Object Linking and Embedding)功能,如在应用程序中嵌入其他应用程序的对象。 【第一个SWT程序】 创建一个SWT程序通常需要以下步骤: 1. 创建Eclipse插件项目,因为SWT是...

    调用codesoft案例

    - **Eclipse SWT/JFace**:用于支持跨平台的 GUI 应用程序开发,本案例中使用了其提供的 OLE 自动化接口来操作 Codesoft。 #### 三、核心代码解析 代码的核心部分在于使用 Java 的 SWT 库来创建一个 ActiveX 控件,...

    JAVA中即时通讯内容扩展研究.pdf

    OLE技术允许应用程序中的对象嵌入或链接到其他应用程序中,从而实现跨文档的信息交互和编辑。 综上所述,本研究通过嵌入Word文档,为即时通讯软件增加了即时编辑矢量图形、图表和公式的功能,不仅提高了专业用户的...

    Eclipse权威开发指南2.pdf

    2.4.6 在Eclipse中使用其他计算机程序..... 55 2.4.7 性能..... 60 2.5 练习概述...... 61 2.6 本章小结...... 61 2.7 参考文献...... 62 第3章 使用Java开发工具 63 3.1 JDT入门...... 64 3.1.1 JDT用户界面概述.....

    Eclipse权威开发指南3.pdf

    2.4.6 在Eclipse中使用其他计算机程序..... 55 2.4.7 性能..... 60 2.5 练习概述...... 61 2.6 本章小结...... 61 2.7 参考文献...... 62 第3章 使用Java开发工具 63 3.1 JDT入门...... 64 3.1.1 ...

    Eclipse权威开发指南1.pdf

    2.4.6 在Eclipse中使用其他计算机程序..... 55 2.4.7 性能..... 60 2.5 练习概述...... 61 2.6 本章小结...... 61 2.7 参考文献...... 62 第3章 使用Java开发工具 63 3.1 JDT入门...... 64 3.1.1 ...

Global site tag (gtag.js) - Google Analytics