2

jlGUI および jAudiotagger ライブラリを使用して単純なメディア プレーヤーを作成しています。

JSlider を使用して、再生の進行に合わせて自動的に移動するインジケーターを実装しました。

ここで、スライダーを登録してイベントを生成することにより、ドラッグによるファイルのシークを実装する必要があります。

したがって、問題は、シーカーを登録するときに、スライダーの自動シーク (再生中) によっても ChangeEvent が発生するため、独自の位置を何度もシークすることです。

どうすれば実装できますか?

4

1 に答える 1

2

ChangeListenerメソッド呼び出しでオン・オフできる を作ってみませんか?

したがって、アニメーション モードの場合、イベントは無視されstateChanged()ます。

ユーザーが をクリックするとJSlider( で認識されますMouseListener)、アニメーションを停止して呼び出しMyChangeListener.setAnimationMode(false)、リスナーがユーザーの操作に反応するようにします。

public class MyChangeListener implements ChangeListener
{
  boolean animationMode = true;

  public void setAnimationMode( boolean mode )
  {
    this.mode = true;
  }

  @Override
  public void stateChanged(ChangeEvent arg0)
  {
    if ( !animationMode )
    {
      // do stuff
    }
  }
}
于 2012-04-07T21:27:34.557 に答える