Ben JavaFX ile başımı çökertilmesi oldum başka bir uygulama ... Bu uygulama çalışan hiçbir örneği varken için çalışırJavaFX
başlatmak:
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();
}
}
Ama içinde new Thread(app).start()
yaparsanız Başka bir uygulama iki lansmanı yapamayacağımı belirten bir istisna alıyorum. Ayrıca benim yöntem bu gibi diğer uygulamaya bir gözlemci tarafından çağrılır
:
O bunun gibi bir JavaFX sınıf içinde var@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 */
}
:
Ben dinleyicileri ama onunla ObjectProperties kullanarak çalıştı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//
}
}
işe yaramadı Bu yeni aşamayı java.util.observer'dan bir şekilde güncelleme yönteminin içinden çalıştırmam gerekiyor.
Herhangi bir öneri memnuniyetle karşılanır. Teşekkürler.
sarın? Eğer evet ise, UI Thread içinde yeni bir 'Stage' yaratabilirsiniz:' final Stage stage = new Stage(); stage.setScene (yourScene); stage.show(); ' – Vertex
Evet, amacım başka bir pencereyi açmaktır (başka bir sınıftaki uygulama), ancak bunu java.util.observer'ın kullanıcı arabiriminden değil güncelleme yönteminin içinde yapmak zorundayım. –
"runLater" yöntemini çağırarak UI iş parçacığına bir kod koyabilirsiniz: Platform.runLater (yeni Runnable() {@Override public void run() {// UI iş parçacığında çalışır}}); ' Böylece 'update' yönteminin içinden de diyebilirsiniz. – Vertex