2013-02-20 15 views
5

Posiadam obecnie grę JavaFX dla pojedynczego gracza. Chcę włączyć wielu graczy grających przez gniazda TCP, dla których mam prosty szkielet klienta/serwera napisany w Javie.Uruchom aplikację javaFX z kodu Java

Mój problem: kod serwera/klienta jest w języku Java. Jak uruchomić aplikację javafx z kodu klienta java, a następnie zaktualizować ją w oparciu o gamestate zwrócony z serwera?

Prosta pętla klient-klient będzie: klient wysyła akcję, serwer aktualizuje gamestate i odtwarza go z powrotem do klienta.

client pseudo-code 

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

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

Jestem początkujący w użyciu javaFX, a ja wykorzystałem aspekt graficzny, ponieważ moja aplikacja jest oparta na nim.

Każda pomoc będzie mile widziana.

Odpowiedz

16

Zakładając MyApplication klasę rozszerza javafx.application.Application można uruchomić go następny sposób:

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

Dzięki. Ale jak mogę uzyskać wystąpienie klasy javafx? Czy mogę aktualizować komponenty za pomocą publicznych metod należących do klasy javafx? –

+1

Dostaję również komunikat o błędzie "Wyjątek w wątku" główny "java.lang.RuntimeException: Błąd: klasa Project1.runJavaFX nie jest podklasą javafx.application.Application". Gdzie runJavaFX jest klasą java, a wewnątrz tego umieściłem aplikację Application.launch (TableGUI.class). gdzie tableGUI jest aplikacją javaFX. @SergeyGrinev –

+0

po prostu ponownie sprawdzone, współpracuje z JavaFX 2.2 której wersji używasz? W każdym razie, jako obejście tego problemu, możesz stworzyć statyczną metodę w 'TableGUI', która wywoła' launch'. I wywołaj tę metodę z klasy 'runJavaFX'. –