在java中,每x秒更改一次焦点按钮
我正在寻找做以下事情的最佳方法。如果有人能给我指出正确的方向,我会非常高兴 我有5个按钮在java中,每x秒更改一次焦点按钮,java,Java,我正在寻找做以下事情的最佳方法。如果有人能给我指出正确的方向,我会非常高兴 我有5个按钮 Button 1 Button 2 Button 3 Button 4 Button 5 我希望每5秒按钮的焦点向下移动一个。因此,应用程序启动,按钮1具有焦点。然后5秒钟后,按钮2聚焦,依此类推,直到按钮5,然后返回到按钮1。当我说焦点时,我的意思是如果按下空格键,按钮就会被按下。任何协助都将不胜感激。谢谢您可以使用java swing计时器完成此任务。看看oracle文档中的示例 您可以使用java
Button 1
Button 2
Button 3
Button 4
Button 5
我希望每5秒按钮的焦点向下移动一个。因此,应用程序启动,按钮1具有焦点。然后5秒钟后,按钮2聚焦,依此类推,直到按钮5,然后返回到按钮1。当我说焦点时,我的意思是如果按下空格键,按钮就会被按下。任何协助都将不胜感激。谢谢您可以使用java swing计时器完成此任务。看看oracle文档中的示例
您可以使用java swing计时器执行此任务。看看oracle文档中的示例
您可以创建休眠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();
final int n=5;
最终int超时=5000;
按钮[]按钮=新按钮[n];
//填充数组
新线程(){
对于(i=0;i
您还可以使用
java.util.Timer
创建休眠5秒的线程,然后唤醒并将焦点设置为next按钮。将按钮存储在数组中
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();
final int n=5;
最终int超时=5000;
按钮[]按钮=新按钮[n];
//填充数组
新线程(){
对于(i=0;i
您还可以使用
java.util.Timer
您也可以使用KeyboardFocusManager进行此操作。下面的示例代码使用java.util中的计时器对象。下面的代码每500毫秒更改一次焦点
final KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
manager.focusNextComponent();
}
}, 0, 500);
希望这能有所帮助。您也可以使用KeyboardFocusManager进行此操作。下面的示例代码使用java.util中的计时器对象。下面的代码每500毫秒更改一次焦点
final KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
manager.focusNextComponent();
}
}, 0, 500);
希望这有帮助