1

JButtonSwing を使用して作成されたプロジェクトがあり、 を使用していくつかのコンポーネント ( 、JScrollPaneJSplitPane)にアニメーションを追加することで (JavaFX のように) よりスムーズにしたいと考えていますjavax.swing.Timer

それはゲームではありません。TimermouseHover イベント、ドロップダウン、スクロールなどの短いアニメーションに使用したいと考えています。しかし問題は、多くの Timer オブジェクトを作成する必要があることです。

質問: JVM に対してどのようなアクションを実行しますか? アプリのセッション中に多くのタイマーを開始および停止します。

4

2 に答える 2

2

それはゲームではありません。mouseHover イベント、ドロップダウン、スクロールなどの短いアニメーションにタイマーを使用したいと考えています。しかし問題は、多くの Timer オブジェクトを作成する必要があることです。

  • これはSwing Timer、(mouseHover イベント、ドロップダウン、またはスクロール) フォーカスからの 1 つだけのジョブmouse or key_eventsであり、Swing Timer実装されstart()stop()おりrestart()、最後の 1 つはユーザー アクションが終了するまで待機するために重要

  • 論理的に複数のイベントを生成することはできません。マルチタッチ ディスプレイがある場合は別の状況になります。この場合、重要なイベントは 1 つだけです。残りのイベントは方向、スケーリング、要因などです。

于 2013-10-08T09:50:45.480 に答える
2

JVM に対してどのようなアクションを実行しますか? アプリのセッション中に多くのタイマーを開始および停止します。

Swing Timer指定ActionEventsされた間隔で起動して、関数を提供するオブジェクトをアニメーション化します: start()、stop()、restart()、および最も重要なsetDelay(int delay)こととして、特定の間隔で連続するアクション イベントを起動し、そのようなすべてのイベント タスクが EDT (イベント ディスパッチ スレッド) で実行されるようにします。作成されたすべての待機状態は、実行される最初のオブジェクトによって作成さTimersれた単一の共有スレッドによって管理されます。TimerQueueTimer

扱いtimerが面倒かもしれません。Timer毎回同じ処理コードを記述する代わりに、 swing TimingFrameWorkのようなライブラリを使用します。

于 2013-10-08T09:43:56.960 に答える