2013-03-01 30 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

相關問題