5

javax.swingすべてのクラスは、実際に を構築している場合にのみ使用する必要があると聞きましたSwing GUI。タイマーループを作成するためにjavax.swing.Timerなしで使用したいと思います。GUIGUIなしで使用するということjava.util.Timerですか?

javax.swing.Timerなしで使うのは大きな間違いGUIですか?パフォーマンスのエラーや速度低下を引き起こす可能性はありますか?

受動的に、またはメイン スレッドを停止せずに実行されるループを作成するには、どのような方法がありますか?

前もって感謝します!

4

2 に答える 2

9

GUI なしで javax.swing.Timer を使用するのは大きな間違いですか? パフォーマンスのエラーや速度低下を引き起こす可能性はありますか?

いいえ、大きな間違いではありません。ただし、アプリケーションで実行中のスレッドがない場合、ActionEvents関連付けられたは起動しません。アプリケーションでスレッドが実行されていない場合、プログラムは関連付けられたメソッドを実行せずに正常に終了します。しかし、GUI は JVM をハングアップさせ、メソッドを実行させます。GUI を使用していない場合は、アプリケーションで実行中のスレッドがあることを確認してください。javax.swing.Timernon-daemonnon-daemonjavax.swing.TimeractionPerformedTimeractionPerformed
non-daemon

受動的に、またはメイン スレッドを停止せずに実行されるループを作成するには、どのような方法がありますか?

java.util.Timerこの目的で使用できます。しかし今java.util.concurrentでは、並行タスクを実行するための豊富な API セットが多数提供されています。ScheduledExecutorServiceそのため、この目的のために API に進む必要があります。

于 2013-05-08T18:39:31.613 に答える
1

はい、必要な別の依存関係であるため、お勧めしません。

依存関係をできるだけ少なくするようにしてください。java.util.Timerあなたのニーズを満たすものがあれば、間違いなくこれを選ぶべきです。

于 2013-05-08T17:33:31.840 に答える