swing嵌入ocx或dll影像控件
来源:互联网 发布:手机淘宝尺码怎么设置 编辑:程序博客网 时间:2024/05/16 07:08
关于swing嵌入ocx或dll影像控件的问题,自己研究了一下,今天发出来给大家共享一下
swing调用OCX或dll的方法有很多,其中包括:jcob、comfyj、jawin、jni、jna等等很多方式,但是如果要显示dll或ocx的控件在swing界面上,就有点麻烦了,就像ocx在IE中显示的<object...>对象一样。
这几种我都实验过,最好用的还是comfyj,但是这个东东最后发现是收费的,而且还不菲~~,如果给客户使用可能存在风险,所以就抛弃了。
然后实验jcob,jcob大家应该都非常熟悉,其实只调用ocx的方法的话,就他就能够满足了,但是如果是ocx或dll视频控件在你的swing程序上显示出来,就非常麻烦了,网上找了很久,也没找到可供参考的资料。最后作罢。
再然后又测试的jawin,最终jawin可以正确展示我的ocx/dll控件视频框,但是好像仅仅支持加载32位动态库,如果是64位的,百度和谷歌了很久也没找到,最后在csdn一个论坛里找了一个加载不报错的,但是不能用~~,郁闷了。
再最后,看到一篇文章,SWT中可以显示word文档,然后心想应该有门,所以又做了测试,并且最终测试成功,现在能在swing上显示32位和64位的动态库或ocx的影像控件了~~~~~~
原理: 用SWT显示控件的视频框,然后将SWT放在swing界面上,然后通过SWT调用封装的dll方法实现交互调用
前提: 用到的OCX或dll必须在系统注册表中已经注册,通过regsvr32 xxxx.dll命令
具体的代码实现,请到我在CSDN上传的资料中下载 http://download.csdn.net/detail/yangyanhe/9383932
swing调用OCX或dll的方法有很多,其中包括:jcob、comfyj、jawin、jni、jna等等很多方式,但是如果要显示dll或ocx的控件在swing界面上,就有点麻烦了,就像ocx在IE中显示的<object...>对象一样。
这几种我都实验过,最好用的还是comfyj,但是这个东东最后发现是收费的,而且还不菲~~,如果给客户使用可能存在风险,所以就抛弃了。
然后实验jcob,jcob大家应该都非常熟悉,其实只调用ocx的方法的话,就他就能够满足了,但是如果是ocx或dll视频控件在你的swing程序上显示出来,就非常麻烦了,网上找了很久,也没找到可供参考的资料。最后作罢。
再然后又测试的jawin,最终jawin可以正确展示我的ocx/dll控件视频框,但是好像仅仅支持加载32位动态库,如果是64位的,百度和谷歌了很久也没找到,最后在csdn一个论坛里找了一个加载不报错的,但是不能用~~,郁闷了。
再最后,看到一篇文章,SWT中可以显示word文档,然后心想应该有门,所以又做了测试,并且最终测试成功,现在能在swing上显示32位和64位的动态库或ocx的影像控件了~~~~~~
原理: 用SWT显示控件的视频框,然后将SWT放在swing界面上,然后通过SWT调用封装的dll方法实现交互调用
前提: 用到的OCX或dll必须在系统注册表中已经注册,通过regsvr32 xxxx.dll命令
/** * 人脸采集控件的SWT图形控件 */private static Canvas swtCanvas = new Canvas() {private static final long serialVersionUID = 1L;@Overridepublic void addNotify() {super.addNotify();synchronized (getTreeLock()) {// 另起线程,以免阻塞new Thread() {public void run() {......// swt的初始化Display display = new Display();Shell _shell = SWT_AWT.new_Shell(display, swtCanvas);_shell.setLayout(new org.eclipse.swt.layout.RowLayout());// 加载第一个ocx窗口OleFrame _frameL = new OleFrame(_shell, SWT.NONE);// tesoClsid : 注册表中已注册的控件PROGID,也就是nameOleControlSite _siteL = new OleControlSite(_frameL, SWT.NONE, tesoClsid);_siteL.doVerb(OLE.OLEIVERB_SHOW);_siteL.setSize(400, 300);......_shell.pack();while (!_shell.isDisposed()) {if (!display.readAndDispatch()) {display.sleep();}}}}.start();}}};......//然后在swing的jPanel中放入swtCanvasjPanelCapture.add(swtCanvas);
具体的代码实现,请到我在CSDN上传的资料中下载 http://download.csdn.net/detail/yangyanhe/9383932
2 0
- swing嵌入ocx或dll影像控件
- IE调试dll(或ocx)
- 如何注册dll、ocx控件
- 在网页上嵌入ActiveX .ocx 控件
- 注册DLL或OCX的函数
- 如何注册DLL或OCX文件
- 如何注册.DLL或.OCX文件
- 批量注册dll或ocx文件
- 批量注册dll或ocx文件
- OCX和DLL的区别--OCX控件的应用
- 如何给ocx,dll控件进行数字签名
- InstallShield注册控件(DLL、OCX)
- Delphi写网页安全控件(dll,ocx)
- Java调用ocx控件以及dll
- Java调用ocx控件以及dll
- Java调用ocx控件以及dll
- InstallShield注册控件(DLL、OCX)
- Java调用ocx控件以及dll
- HTML5本地存储——IndexedDB(二:索引)
- C++ 服务器客户端编程实例(一)
- MySql like模糊查询通配符使用详细介绍
- 关于iOS多线程,你看我就够了
- Java设计模式_行为型_备忘录模式_大话西游之月光宝盒
- swing嵌入ocx或dll影像控件
- 【学习笔记javascript设计模式与开发实践(模板方法模式)----11】
- Eclipse常用插件
- iOS 页面间几种传值方式(属性,代理,block,单例,通知)
- android的MediaPlayer的介绍
- Android5.1 SPI驱动
- cocos-lua Test详解
- 手机淘宝移动端接入网关基础架构演进之路
- android之拨盘界面