2013-02-20 44 views
5

我有一個JavaFX卡遊戲目前正在運行單人遊戲。我想讓多個播放器通過TCP套接字連接進行播放,爲此我有一個用java編寫的簡單的客戶端/服務器框架程序。從java代碼啓動javaFX應用程序

我的問題是:服務器/客戶端代碼是在java中。如何從客戶端Java代碼啓動javafx應用程序,然後根據從服務器返回的遊戲狀態對其進行更新?

簡單的服務器 - 客戶端循環將是:客戶端發送操作,服務器更新gamestate,並將其回送給客戶端。

client pseudo-code 

if(!clientGUI.isInitialised()) 
    initJavaFXapp(); // I am struggling to do this 

//keep reading from server 
if(obj instanceOf gameState) 
    javaFXGUI.update(obj) 

我是初學者使用javaFX,我利用圖形方面,因爲我的應用程序是基於它。

任何幫助將不勝感激。

回答

16

假設MyApplication類擴展javafx.application.Application你可以啓動它未來的方式:

javafx.application.Application.launch(MyApplication.class); 
+1

感謝。但是,我如何獲得javafx類的實例?所以我可以使用屬於javafx類的公共方法更新組件? – 2013-02-20 04:33:38

+1

我還收到一個錯誤,說'線程中的異常「主」java.lang.RuntimeException:錯誤:類Project1.runJavaFX不是javafx.application.Application的子類。 其中runJavaFX是java類,內部有''Application.launch(TableGUI.class)'。其中tableGUI是javaFX應用程序。 @SergeyGrinev – 2013-02-20 04:42:17

+0

只是重新檢查,適用於JavaFX 2.2你使用哪個版本?無論如何,作爲解決方法,您可以在'TableGUI'中創建靜態方法,該方法將調用'launch'。並從'runJavaFX'類中調用該方法。 – 2013-02-20 04:49:51