我一直在砸我的头使用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以某种方式更新方法内运行的新阶段。
任何建议都欢迎。 谢谢。