我一直在用 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 的更新方法中运行这个新阶段。
欢迎任何建议。谢谢。