JavaFX uruchamia inną aplikację
Rozwaliłem sobie głowę JavaFx ...
Działa to, gdy nie ma uruchomionych aplikacji:
public class Runner {
public static void main(String[] args) {
anotherApp app = new anotherApp();
new Thread(app).start();
}
}
public class anotherApp extends Application implements Runnable {
@Override
public void start(Stage stage) {
}
@Override
public void run(){
launch();
}
}
Ale jeśli to zrobięnew Thread(app).start()
w ciągu inna aplikacja Otrzymuję wyjątek stwierdzający, że nie mogę wykonać dwóch uruchomień.
Moja metoda jest również wywoływana przez obserwatora w innej aplikacji, takiej jak ta:
@Override
public void update(Observable o, Object arg) {
// new anotherApp().start(new Stage());
/* Not on FX application thread; exception */
// new Thread(new anotherApp()).start();
/* java.lang.IllegalStateException: Application launch must not be called more than once */
}
Jest w klasie JavaFX takiej jak ta:
public class Runner extends Applications implements Observer {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage){
//...code...//
}
//...methods..//
//...methods..//
@Override
public void update(Observable o, Object arg) {
//the code posted above//
}
}
Próbowałem użyć ObjectProperties ze słuchaczami, ale to nie zadziałało. Muszę uruchomić ten nowy etap z poziomu metody aktualizacji z java.util.observer w jakiś sposób.
Wszelkie sugestie są mile widziane. Dzięki.