我一直在用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的update方法中运行此新阶段。
任何建议都欢迎。谢谢。
缥缈止盈
小唯快跑啊
相关分类