Fondamentalmente voglio essere in grado di avviare una nuova finestra Javafx (stage) dopo (e dentro) il mio thread LWJGL/GLFW inizia. Fondamentalmente sto facendo:Javafx Platform.runLater mai in esecuzione
Thread thread = new Thread(()->Platform.runLater(()->{
Stage stage = new Stage();
//Stage setup
stage.show();
}));
thread.start();
thread è la mia discussione di gioco. Ma non funziona mai e ho provato uno System.out.println()
all'interno di Platform.runLater()
solo per controllare che non sia mai eseguito.
Perché non funziona mai e cosa posso fare per risolverlo? Grazie.
EDIT: Giusto per chiarire che il thread è definitivamente avviato e quant'altro, se faccio:
Thread thread = new Thread(()->{
System.out.println("Before Platform.runLater()");
Platform.runLater(()->System.out.println("Inside Platform.runLater()"));
System.out.println("After Platform.runLater()");
});
Produce:
Before Platform.runLater()
After Platform.runLater()
Sembra che non ci siano problemi con il pezzo di codice che hai fornito. Puoi controllare se 'thread.start();' viene chiamato e thread sta per iniziare. – ItachiUchiha
Con il codice che hai postato, 'Thread 'è ridondante. Potresti semplicemente chiamare 'Platform.runLater (...)' da qualunque thread ti trovi. Qual è il contesto qui? Sono stati avviati il toolkit FX e il thread dell'applicazione? –
Sì, scusa, l'ho semplificato in modo massiccio perché ci sono molte altre cose in diverse classi nella discussione. So per certo che il thread è stato avviato perché è da lì che viene la mia finestra GLFW e posso vederlo. Fondamentalmente ho la mia finestra/gioco GLFW e voglio che anche uno stage venga fuori dopo una condizione (quindi la finestra GLFW deve venire prima). Il thread dell'applicazione FX è iniziato perché lancio la finestra GLFW utilizzando un'applicazione FX. – user2513924