私はこれについて本当に混乱しています。Java には 2 つの Timer クラスがあり、1 つはswingの下にあり、もう 1 つはutilの下にあります。X を Y 秒ごとに単純に実行したい場合、どちらを使用すればよいですか? これは、GUI を作成している場合、タイマーにスイング バージョンを使用する必要があるということですか?
ありがとう!
私はこれについて本当に混乱しています。Java には 2 つの Timer クラスがあり、1 つはswingの下にあり、もう 1 つはutilの下にあります。X を Y 秒ごとに単純に実行したい場合、どちらを使用すればよいですか? これは、GUI を作成している場合、タイマーにスイング バージョンを使用する必要があるということですか?
ありがとう!
javax.swing.Timer と java.util.Timer の違いは次のとおりです。
javax.swing.Timer
java.util.Timer
Swing タイマーは、次の 2 つの方法で使用できます。
上記の情報のソースは次のとおりですhttp://www.javapractices.com/topic/TopicAction.do?Id=160 およびhttp://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html
X を Y 秒ごとに単純に実行したい場合、どちらを使用すればよいですか?
あなたが何とやり取りしているかに応じて。GUI を操作している場合は を使用しjavax.swing.Timer
、それ以外の場合は を使用しますjava.util.Timer
。
これは、GUI を作成している場合、タイマーにスイング バージョンを使用する必要があるということですか?
はい
Swingバージョンは、Swingコンポーネントをレンダリングするためのものです。時間を計る必要がある場合は、utilを使用してください。
あなたはちょっと正しいです。タイマーの影響を受けるUI作業を行う場合は、swingコンポーネントを使用することをお勧めします。utilタイマーはUI要素自体を設定できません。これは素晴らしい比較です。
v 1.3 では、別の Timer クラスが Java プラットフォームに追加されました: java.util.Timer。それと javax.swing.Timer はどちらも同じ基本機能を提供しますが、java.util.Timer はより一般的で、より多くの機能を備えています。javax.swing.Timer には、GUI での使用を少し簡単にする 2 つの機能があります。第 1 に、そのイベント処理メタファは GUI プログラマーになじみがあり、イベント ディスパッチ スレッドの処理を少し簡単にすることができます。2 つ目は、自動スレッド共有により、スレッドの生成が多すぎるのを避けるために特別な手順を実行する必要がないことです。代わりに、タイマーは、カーソルの点滅やツール ヒントの表示などに使用されるのと同じスレッドを使用します。
The Java Tutorial のセクションである How to Use Timers にアクセスすると、タイマーの使用に関する詳細なドキュメントといくつかの例を見つけることができます。その他の例と、この Timer クラスと java.util.Timer のどちらを選択するかについては、The Swing Connection の記事、Using Timers in Swing Applications を参照してください。
公式ドキュメントから。