我正在尝试为学校项目创建一个小按钮游戏。游戏的内容是,有几个按钮每隔 3 秒就会闪烁一种颜色,然后如果您在颜色上升时按下它,它就会保持这种颜色。
我已经创建了所有按钮并且它们显示得很好。我只需要有关实际处理代码的帮助。
我遇到的困难
timer = new Timer(length, jButton1ActionPerformed); timer.setInitialDelay(pause); private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { jButton1.setBackground(Color.blue); }
现在这不是我真正的游戏,我只是想掌握 Swing Timers 的窍门
现在我有了改变颜色的按钮,这是我试图让它在单击时保持该颜色的代码。
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if(jButton1.getBackground().equals(Color.blue){
jButton1.setBackground(Color.blue);
timer.stop();
}
}
最佳答案
您将需要使用 Swing Timer 来处理您的动画。在计时器的 ActionListener 中,您将拥有随机选择一个按钮(Random 类可以在此处提供帮助)并更改其颜色的代码,可能通过 setForground(...)
,或者甚至通过使用 ImageIcons 并通过 setIcon(...)
交换图标。然后,JButton 的 ActionListener 可以检查按钮的图标或前景色并采取相应的操作。
由于这是一个学校项目,我不会发布代码解决方案,但会添加一些应该有所帮助的链接:
<小时/>要为计时器创建一个 ActionListener,只需这样做 - 创建一个内联:
ActionListener timerListener = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
// code to be performed every xxx mSec goes here
}
}
int timerDelay = 3 * 1000; // or whatever length of time needed
Timer timer = new Timer(timerDelay, timerListener);
// later on in the block where you want to start your Timer
timer.start();
关于java - 每隔几秒更改一次 jButton 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25999064/