2016-09-06 7 views
-3

私はこのトピックに関するいくつかの質問があることを知っていますが、これらはどれも解決策を見つけるのに役立ちませんでした。 私は2つのアニメーションを持っています。数秒後にそれらを実行したいです。JavaFX - UIをフリーズすることなく待つ方法

マウスをクリックするたびに、アニメーションはデフォルトの遅延時間にリセットされます(5秒とします)。私が何もしなければ、時間がゼロになるまで逃げる。 私が0秒に達したとき、アニメーションはstart()になります。等々。

もちろん、Thread.sleep()は任務が完了するまで私のUIをフリーズさせます。 ThreadTask、または他のクラスを使うべきかどうかはわかりません。

これを行う方法はたくさんありますが、私はマルチスレッドに慣れていないので効率的に使用する方法を学びたいと思っています。皆さんありがとうございました。

+2

スレッディングは必要ありません。アニメーションAPIは、あなたが記述している種類のものを実行するために必要なものすべてを既に備えています。あなたの説明はあまり明確ではありません。投稿を編集して、これまでに持っていたコードのいくつかを表示し、あなたが何をしたいかをより明確に説明できますか? (私が理解しているように、アニメーションはユーザーが何もしないと繰り返し実行されますが、ユーザーがマウスをクリックすると、しばらくポーズしてから最初から再起動しますか?) –

+0

この場合、私のコードは不要だと思います。私はそれを行う方法やいくつかのメソッド名が必要です。 – Rouman

+2

いくつかのコードを表示して質問に答える方がずっと簡単です。誰も本当にあなたの*問題を解決するためにコードを一から書くつもりはないので、あなたが理解できる部分を実行する完全な実行可能な例を提供すれば、はるかに簡単です。必要以上にあなたを助けることをより困難にしないでください。 –

答えて

2

おそらく

timeline.setCycleCount(Animation.INDEFINITE); 

はそれが無限に繰り返さ作るために、あなたはタイムラインが開始するまでの遅延を指定する

timeline.setDelay(...); 

を使用して欲しいものを得ることができ、かつ

timeline.playFromStart(); 

へ指定された遅延の後、最初からやり直してください。

+0

ありがとうございました。 – Rouman

+3

@ルーマン一般的には、あなたの質問に答えた場合(あなたはこれまでどんな答えも受け入れていません)、答えを受け入れるべきです。そうすることで、他のユーザーが同様の質問をした場合に回答を見つけることができます。この場合、おそらくあなたの質問が他人を助けるほど明確ではないと思うので(あなたの意見は変わる可能性がある)、あなたの他の質問のいくつかは受け入れられる回答があります。 –

+0

問題は以前の回答のどれもそれほど役に立たなかったことです。彼らは私にアイデアをくれたが、彼らは私の問題を全く解決しなかった。私は上からあなたの答えをありがとうが、この1つは私を助けなかった。だから、私はコミュニティを助けることに興味がない、私は気にしない、これはシーズンボードであり、私はより良いものを見つけるつもりだ。質問に必要なものがすべて含まれていても、このプラットフォームには非常に多くの "専門家"がいて、良いヒントを与えることができないようです。 – Rouman

関連する問題