Mediator でデザイン パターンを使用しようとしています。すべてのコンポーネントを 1 つのクラスにするのではなく、GUI を分離するためです。
たとえば、他の GUI コンポーネントを使用する前にプログラムにログインする必要がある場合などです。したがって、ウィンドウを変更するときに各 GUI クラス (Login、addUser、ShowUser) が参照できる各 GUI 要素のインスタンスを作成する Mediator クラスを作成します。
public class Mediator {
public Login login;
public AddUser add;
public ShowUsers su;
public Stage stage = new Stage();
public Mediator(){
login = new Login(this);
add = new AddUser(this);
su = new ShowUsers(this);
}
public void showUser() throws Exception{
su.start(stage);
}
}
public class ShowUsers extends Application{
private Mediator m;
private Stage stage = new Stage();
public ShowUsers(Mediator m){
this.m =m;
}
@Override
public void start(Stage stage) throws Exception {
Group root = new Group();
Scene scene = new Scene(root);
stage.setScene(scene);
}
}
私は例外を取得しています: Exception in thread "main" java.lang.IllegalStateException: Not on FX application thread; 現在のスレッド = メイン
メディエータを使用したい場合、どうすればこれを回避できますか?
アップデート
public class Main {
public static void main(String[] args) throws Exception{
Mediator m = new Mediator();
m.showUser();
}
}