[英]Change focused button every x seconds in java
我正在寻找执行以下操作的最佳方法。 如果有人能指出我正确的方向,我会很高兴。
我有5个按钮
Button 1
Button 2
Button 3
Button 4
Button 5
我想发生的是,按钮的焦点每5秒钟向下移动一个。 因此,该应用程序启动,并且按钮1具有焦点。 然后5秒钟后,按钮2进行聚焦,依此类推,直到按钮5,然后返回按钮1。当我说聚焦时,我的意思是如果按下空格键,将按下该按钮。 任何援助将不胜感激。 谢谢
您可以使用Java Swing计时器执行此任务。 看一下oracle docs中的示例
http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html
您可以创建一个可以休眠5秒的线程,然后唤醒并将焦点设置到下一个按钮。 将按钮存储在数组中。
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();
您也可以使用java.util.Timer
您也可以为此使用KeyboardFocusManager。 下面的示例代码使用java.util中的Timer对象。 下面的代码每500毫秒更改一次焦点。
final KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
manager.focusNextComponent();
}
}, 0, 500);
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.