2013-02-20 71 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