2

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

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

还是我必须依赖此处发布的库:

在 Java 中使用 .OCX 控件

提前致谢,

斯文

4

1 回答 1

1

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

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

更简单的方法可能是请求您的应用程序的用户将他们的默认浏览器设置为 IE,然后调用 JavaFX hostservices.showDocument(uri) api 来启动一个嵌入了您需要的 OCX 组件的 IE 页面。

另一种选择是:

  1. 将您的 JavaFX 应用程序作为小程序嵌入网页中。
  2. 还可以在网页中嵌入您的 activex 控件。
  3. 在显示网页时,检查浏览器,如果不是 IE,请告诉他们用户必须使用 Internet Explorer。
  4. 让用户接受浏览器显示的任何其他安全警告。
  5. 让用户(或者可能是 JavaScript)将浏览器窗口的大小调整为全屏(请参阅IE9 全屏模式使用 JavaScript 的全屏浏览器)。
  6. 使用通过javafx/javascript 桥调用调用的 javascript 在您的活动 X 控件和 java 应用程序之间进行通信,并通过页面中嵌入的 VBScript 控制您的活动 X 控件。

它可能会起作用,但它是一个丑陋的科学怪人解决方案。. .

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

于 2012-05-15T17:22:21.337 回答