私は何が間違っているのか分かりません。エラー!スレッド「AWT-EventQueue-0」の例外java.lang.IllegalStateException:FXアプリケーションスレッドではありません。 currentThread = AWT-EventQueue-0
GUIの上部にあるテキストグラフィックを更新するタイマーを作成しました。タイマーがなくなると、変数(リスナーにリンクされている)が変更され、新しいグラフィック 'Scene/Group/Node'がGUIに追加されます。私のChangeListener にリンクされた - と私のGUI //ないリスナーにシーンを追加する//変数が、私のGUI
に新しい要素を追加し-Changing
これらの追加の両方が私のプログラムがでクラッシュを引き起こしますそのエラー:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Not on FX application thread; currentThread = AWT-EventQueue-0
at com.sun.javafx.tk.Toolkit.checkFxUserThread(Toolkit.java:235)
at com.sun.javafx.tk.quantum.QuantumToolkit.checkFxUserThread(QuantumToolkit.java:393)
サンプルエラーコード:
int delay = new Integer(1000); //milliseconds
time_left=time_limit;
ActionListener taskPerformer = new ActionListener() {
@Override
public void actionPerformed(java.awt.event.ActionEvent arg0) {
// TODO Auto-generated method stub
timer.setText(time_left+" SECONDS LEFT");
time_left=time_left-1;
if (time_left<0)
{
//time_left=time_limit;
mytimer.stop();
//mytimer.start();
root.getChildren().get(2).setOpacity(.2);
//root.getChildren().add(3,newScene()); //This causes to crash //Adds a new Scene to my GUI
current_player.setValue(false); //Also causes to crash - current_player has a Listener on it
//System.out.println("TIMER RAN OUT!");
}
}
};
mytimer=new Timer(delay, taskPerformer);
mytimer.start();
私current_playerリスナー:
current_player.addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
//Code in Here
}
{);