Possiedo un'app per Java Swing su cui sto verificando se è persino possibile effettuare il porting su JavaFX. L'app è un ambiente di sviluppo e un simulatore per un linguaggio di scripting utilizzato internamente. La cosa interessante è che puoi impostare i breakpoint per questo linguaggio di scripting e superarlo, come ogni programmatore si aspetterebbe per una lingua.SecondaryLoop in JavaFX, come Swing?
Ora poiché il linguaggio nel simulatore viene interpretato, in profondità nell'esecuzione dell'interprete, quando raggiunge un punto di interruzione, può tornare alla GUI con una classe Java Swing SecondaryLoop. Quindi, quando viene colpito il punto di interruzione, chiama secondaryLoop.enter(). Il gui è quindi attivo per l'utente per ispezionare le variabili e i componenti dell'interfaccia grafica sono attivi. Quando l'utente preme "Continua" nel programma, chiama secondaryLoop.exit() per continuare l'esecuzione dell'interprete. Non sarebbe realmente fattibile per l'interprete di srotolare l'intero stato per tornare al ciclo primario, e riprendere da dove era stato interrotto esattamente allo stesso punto. Ecco perché SecondaryLoop ha un valore inestimabile nel farlo funzionare.
È possibile in JavaFX?
Secondo JEP 253: "Con la prossima versione di Java 9, e in particolare con l'introduzione di forti confini tra i moduli in Project Jigsaw, gli sviluppatori scopriranno che il loro codice non verrà più compilato o eseguito dal' com.sun . * 'I pacchetti non saranno più accessibili." [Anche] (http://blog.codefx.org/java/dev/how-java-9-and-project-jigsaw-may-break-your-code/#Internal-API): "Quindi se inizia con' com.sun. * ', non esisterà su qualsiasi JDK non Oracle. E se appartiene a uno di questi pacchetti e non è annotato con' @ jdk.Exported', non sarà accessibile da Java 9 in poi. " – jewelsea
Grazie per l'informazione extra jewelsea! In effetti questo è sempre il rischio di usare pacchetti * sun *. Tuttavia, penso che FX Toolkit finirà per essere parte dell'API pubblica, comunque se qualcuno è interessato a seguire [vedi questa richiesta openJDK] (https://bugs.openjdk.java.net/browse/JDK- 8090865) – JavierJ
L'esempio non funziona. 'exitNestedEventLoop' genera un'eccezione che non viene chiamata sul thread della piattaforma. : -/ – Vampire