2013-03-01 62 views
0

我会知道是否有办法让Java桌面应用程序与applet通信,以便从桌面应用程序调用Javascript函数(通过applet)。Java:如何从本地主机Java桌面应用程序与Java Applet进行通信?

上下文:

在一方面,我有一个ExtJS应用(全AJAX),其位于远程服务器上。另一方面,一个桌面Java应用程序(netbeans应用程序),它是常驻(确实)。

我会怎么做:

每次使用应用程序之一,它发出事件&数据到其他应用程序。

一些研究之后,我看到了有趣的帖子herehere,还取决于how to communicate between applets答案(见here)。

问题不在于如何从applet到destktop应用程序跨域(请参阅over therehere),但正如在开始时所说的,如何从桌面Java应用程序与JavaScript进行通信。

的web应用(ExtJS的)基于在远程服务器上,小应用程序了。我可以在本地找到小程序,但它意味着部署本地Web服务器。

桌面应用程序非常沉重,所以我无法将其转换为小程序格式。

我把“反向AJAX”标签,因为它是我会做的全球概念。

如果所有这一切都可能没有小程序(没有Flash请),也没关系。

+1

要从浏览器applet调用javascript,您需要使用“LiveConnect”。为了将“事件”从桌面应用程序启动到小程序,小程序需要使用“ServerSocket”连接到桌面应用程序,并且您需要为事件传输提供协议。 – 2013-03-01 15:39:36

+0

@ bmorris591似乎是好方法,谢谢!你能否让它成为答案? – Benj 2013-03-04 07:48:56

回答

1

为了在浏览器中从Java applet调用javascript方法,您需要使用Netscape LiveConnect API,但有一些示例here
基本上这是一个由浏览器本地实现的API,并允许Java applet访问浏览器的JavaScript引擎。

一旦你有了那个排序,那么你需要从桌面应用程序中调用applet中的方法,这有点棘手。最简单的方法可能是有一个Enum,您交换序列化的实例来描述事件的类型。

有一个使用套接字进行通信的例子here

+0

好的感谢您的回答和链接。你说对了 :) – Benj 2013-03-04 15:48:14