JavaFX可以调用和嵌入OCX组件

时间:2012-05-15 14:55:13

标签: java activex javafx ocx

是否能够加载和嵌入OCX控件的JavaFX?我想在我的应用程序中使用Internet Explorer,因为WebKit浏览器缺乏对ActiveX的支持。因为我必须依赖第三方ActiveX控件(我知道它们是邪恶的),所以我必须使用IE。

这个问题并不完全与“我可以在Java中使用OCX”有关,因为我想为我想要使用的JavaFX提供某种组件。

或者我必须依赖这里发布的图书馆:

Use a .OCX Control in Java

提前致谢,

斯文

1 个答案:

答案 0 :(得分:1)

您必须依赖于您在问题中提供的链接中发布的库。 或者您需要编写自己的JNI接口。

如果您访问OCX组件,您可能需要将它们放在自己的窗口中而不是共享由JavaFX阶段创建的窗口,因为您可能会遇到JavaFX渲染器在OCX窗口部分上发生冲突的问题显示组件 - 您必须尝试并查看确认的内容。

更简单的方法可能是请求应用程序的用户将其默认浏览器设置为IE,然后调用JavaFX hostservices.showDocument(uri) api以启动嵌入所需OCX组件的IE页面。 / p>

另一种选择是:

  1. 将您的JavaFX应用程序作为小程序嵌入网页。
  2. 还在网页中嵌入了activex控件。
  3. 在显示网页时,检查浏览器,如果不是IE,则告诉用户必须使用Internet Explorer。
  4. 让用户接受浏览器显示的任何其他安全警告。
  5. 让用户(或可能是JavaScript)将浏览器窗口调整为全屏(请参阅IE9 Full Screen ModeFull Screen Browsers with JavaScript)。
  6. 使用来自javafx/javascript bridge的调用调用的javascript在您的活动X控件和Java应用之间进行通信,并通过页面中嵌入的VBScript控制您的活动X控件。
  7. 它可能会奏效,但它是一个丑陋的科学怪人解决方案。 。

    如果您可以将您的媒体转换为JavaFX支持的格式并直接通过JavaFX播放,那将更为可取,或者由于深度ActiveX集成需求而导致JavaFX不是最好的解决你的问题,你可以用Silverlight之类的东西做得更好。