我的目标是让 Limewire(JAVA) 和 Songbird(XULRunner) 一起运行。
我在想最好的方法是在 JAVA 摆动面板中运行 XUL 应用程序(songbird)。还有其他方法吗?
将 GUI 完全放在 XUL 中,然后以某种方式访问我的 JAVA 对象会更好还是可能?
我该怎么做呢?
谢谢
看看DJ Native Swing,一个使用 SWT 和 Xulrunner 的本地 Swing 实现。
我目前正在研究 XUL 的新产品,我遇到了JavaXPCOM,它允许 Java 代码与 XPCOM 对象进行交互。我仍然围绕着 Mozilla 堆栈,但据我了解,所有 XULRunner 应用程序都使用 XPCOM。因此,您似乎应该能够使用这种方法嵌入 Songbird。
Mozilla 的官方 XUL 实现,严重依赖 Gecko。Gecko 不是用 Java 编写的,也不是嵌入在 AWT/Swing/SWT 中(至少不使用 JNI)。
所以,简短的回答是:不。您必须要么使用 JNI,要么使用繁重、复杂和不完整的第三方库。
但是,JavaXPCOM 似乎允许嵌入 Gecko:https ://developer.mozilla.org/en/JavaXPCOM 但在这种情况下,您将依赖 Gecko ......而且我不知道这是否足以运行 Songbird。
我会检查 Limewire 的源代码。如果 UI 和应用程序的其余部分之间有一个清晰的分离,我会尝试找到一个解决方案来从 Songbird 扩展中实例化和调用 Limewire 的非 UI 代码。
我会看看 eclipse swt 的 xulrunner 嵌入:http: //www.eclipse.org/swt/faq.php#whatisbrowser