JavaFX запустить другое приложение
Я ломал голову с JavaFx ...
Это работает для случаев, когда нет запущенных приложений:
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();
}
}
Но если я сделаюnew Thread(app).start()
в В другом приложении я получаю исключение о том, что я не могу сделать два запуска.
Также мой метод вызывается наблюдателем в другом приложении, например так:
@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 */
}
Это внутри класса JavaFX, такого как этот:
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//
}
}
Я пытался использовать ObjectProperties со слушателями, но это не сработало. Мне нужно каким-то образом запустить этот новый этап из метода обновления из java.util.observer.
Любые предложения приветствуются. Благодарю.