私はRunnableを使ってマルチスレッドでx秒ごとにお客様のアプリケーションチェックを行うように割り当てられています。だから私はScheduledExecutorServiceを私のコントローラクラスに詰め込み、新しいスレッドが呼び出されて、それがすべてダンディですが、警告を出すときはいつでもIllegalStateExceptionを取得します。JavaFXはFXアプリケーションスレッドではありません
クラス:)
Platform.runLater(new Runnable() {
@Override
public void run()
{
System.out.println("I've started");
try
{
Alert alert = new Alert(AlertType.ERROR, "Line is empty");
alert.setTitle("Error");
alert.setHeaderText("Line empty");
System.out.println("I've ended");
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
しかし、その後のRunnableには、実行は(ありません文句を言う:
public class Line implements Runnable
{
public Line()
{
System.out.println("I'm made");
}
@Override
public void run()
{
System.out.println("I've started");
try
{
Alert alert = new Alert(AlertType.ERROR, "Line is empty");
alert.setTitle("Error");
alert.setHeaderText("Line empty");
System.out.println("I've ended");
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
私はそうのようなPlatform.runLaterのものに全体の実行()関数を入れて試してみました。
誰でもどのようにこれを行うに考えましたか?コードはScheduledExecutorServiceからx秒ごとに呼び出されなければならず、警告はrun()関数内で行われなければなりません。
'しかし、その後のRunnableは何のラン(ありません文句を言う'あなたはそれを表示することができますか? –
これは、すべてのメソッドが実装されているわけではなく、run()メソッドを追加するか、またはクラスを抽象クラスにすることを提案しています。 また、少し混乱させてしまったかもしれませんが、私が使った2番目のスニペットは、Lineクラスで使用されています。私はこれに本当に新しいので、私はどのようにPlatform.runLaterのものを使用するのか分からない。 – Amalah
あなたのrunLaterの使い方は正しいと思います。そのエラーがどこで発生するのか分かりません。 –