2016-11-23 2 views
0

Derzeit lerne ich fortgeschrittenen Objekt-Programmierung und ich habe einen Haken gefunden, wenn Sie versuchen, eine JavaFx-Lösung zu einer bestimmten Swing-Lösung zu schreiben.Java Swing zu JavaFX (RMI/Threads)

Das Problem bestand darin, ein RMI-Programm mit Polling zu entwickeln. Ich habe die Swing-Version perfekt funktioniert, und ich glaube, ich habe das Problem in diesem Codeabschnitt eingegrenzt.

Schaukel

public static void main(String args[]) 
{ 
     java.awt.EventQueue.invokeLater(new Runnable() { 
     public void run() 
     { 
      new PollClient().setVisible(true); 
     } 
     }); 
} 

JavaFx

public static void main(String args[]) 
    { 
     Platform.runLater(new Runnable(){ 
      @Override 
      public void run() 
      { 
       launch(args); 
      } 
     }); 
    } 

Jede Beratung wird gebeten.

Antwort

0

Platform.runLater spezifiziert in seiner Dokumentation, dass es auf dem JavaFX application thread zu einem unangegebenen Zeitpunkt in der Zukunft ausgeführt wird. Damit dieser Thread existiert, müssen Sie zuerst Ihre Anwendung starten.

Dies bedeutet, dass die Aktion zum Starten der Anwendung nie ausgeführt wird, da die Anwendung nicht gestartet wurde.

Unabhängig davon sollten JavaFX aus der Hauptfunktion gestartet werden, keine Notwendigkeit, eine Verzögerung einzufügen:

Application.launch(PollClient.class, args)