如何解决在多个动作事件之间进行选择
所以我们只说我有3个不同的ActionEvent,而类ExecuteAction
应该使用给定的整数action
执行这些事件之一。 Int action
可以是随机生成的,也可以通过文本字段给出,并且所有actionEvent应共享同一计时器actionTimer
。
这是我认为它如何工作的一个小概念(这不是正确的代码,只是一个想法)。
public class ExecuteAction implements ActionListener{
private int action;
private Timer actionTimer = new Timer (delay,this);
public ExecuteAction(){
actionTimer.start();
actionChooser(action);
}
private void actionChooser(int action){
switch(action){
case 1: //perform ActionEvent1
break;
case 2: //perform ActionEvent2
break;
case 3: //perform ActionEvent3
break;
}
}
}
不幸的是,我不知道如何使用ActionListener处理它,这基本上就是我对这个概念的想法的终点。我希望您能帮助我完成这个概念。
注意:我不想使用任何按钮,只需数字即可确定将要执行的actionEvent。
解决方法
只需在代码内使用核心Java伪随机数生成器java.util.Random
,就可以执行随机操作。如果将其放在标准的ActionListener中,则可以从Swing Timer中调用它。例如:
// imports
public class TimerFoo {
private static final int TIMER_DELAY = 20; // or whatever delay desired
private static final int MAX_CHOICE = 3;
private ActionListener timerListener = new TimerListener();
private Timer actionTimer;
private Random random = new Random(); // import java.util.Random to use
public ExecuteAction() {
actionTimer = new Timer(TIMER_DELAY,() -> {
int randomChoice = random.nextInt(MAX_CHOICE);
switch (randomChoice) {
case 0:
// do code for 0;
return;
case 1:
// do code for 1;
return;
case 2:
// do code for 2;
return;
// don't need a default
}
});
}
public void start() {
actionTimer.start();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。