2012-03-18 9 views
0

私は次のような最善の方法を探しています。誰かが正しい方向に私を指すことができたら、私はすばらしいだろう。Javaのx秒ごとにフォーカスの入ったボタンを変更

私は起こるしたいのですがどのような5つのボタン、

Button 1 
Button 2 
Button 3 
Button 4 
Button 5 

を持っては5秒ごとに、ボタンの動き1つのダウンの焦点です。アプリケーションが起動し、ボタン1にフォーカスがあります。その後5秒後にボタン2がフォーカスを奪って、ボタン5まで、それからボタン1に戻ります。フォーカスを言うと、スペースバーが押されるとボタンが押されます。いかなる援助も感謝します。ありがとう

答えて

1

を使用することができます。以下のサンプルコードは、java.utilのTimerオブジェクトを使用しています。以下のコードは、500 msごとにフォーカスを変更します。

final KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager(); 

    Timer timer = new Timer(); 
    timer.scheduleAtFixedRate(new TimerTask() { 

     public void run() { 
      manager.focusNextComponent(); 
     } 

    }, 0, 500); 

これが役に立ちます。

1

あなたが目覚めたとのセットは、次のボタンにフォーカスが、その後、5 sencondsために眠るスレッドを作成することができますの例を見てみましょう。ボタンを配列に格納します。

final int n = 5; 
final int TIMEOUT = 5000; 
Button[] buttons = new Button[n]; 
// fill the array 

new Thread() { 
    for (i = 0; ; i < n ? i++ : i = 0) { 
     buttons.requestFocusInWindow(); 
     try { 
      Thread.sleep(TIMEOUT); 
     } catch(InterruptedException e) {} 
    } 
}.start(); 

また、あなたは、同様にこのためのKeyboardFocusManagerを使用することができますjava.util.Timer

関連する問題