2013-02-20 14 views
5

Ho un gioco di carte JavaFX attualmente in esecuzione per giocatore singolo. Voglio consentire a più giocatori di giocare su connessioni socket TCP, per le quali ho un semplice programma scheletro client/server scritto in java.Avvia l'app javaFX dal codice java

Il mio problema è: il codice server/client è in java. Come posso avviare l'app javafx dal codice java del client e quindi aggiornarla in base al gamestate restituito dal server?

Il ciclo client-server semplice sarà: il client invia l'azione, gli aggiornamenti del server gamestate e lo rimanda al client.

client pseudo-code 

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

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

Io sono principiante con JavaFX, e ho utilizzato l'aspetto grafico come la mia applicazione si basa su di esso.

Qualsiasi aiuto sarebbe molto apprezzato.

risposta

16

Supponendo MyApplication classe estende javafx.application.Application è possibile avviarla modo seguente:

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

Grazie. Ma come ottengo un'istanza della classe javafx? In modo che posso aggiornare i componenti su di esso utilizzando metodi pubblici appartenenti alla classe javafx? –

+1

Viene visualizzato anche un errore che dice "Eccezione nel thread" principale "java.lang.RuntimeException: Errore: classe Project1.runJavaFX non è una sottoclasse di javafx.application.Application'. Dove runJavaFX è la classe java e al suo interno ho messo "Application.launch (TableGUI.class)". dove tableGUI è l'app javaFX. @SergeyGrinev –

+0

appena ricontrollato, funziona con JavaFX 2.2 quale versione usi? Ad ogni modo, come soluzione alternativa, puoi creare un metodo statico in 'TableGUI' che chiamerà' launch'. E chiama quel metodo dalla classe 'runJavaFX'. –

Problemi correlati