我有三个标签,每隔一个标签就像一台老虎机一样停下来,我把一个随机颜色显示在标签上,加上每个标签上显示随机颜色,这个代码我得到了相同的颜色每个标签上的颜色,所以我需要时间的帮助,并在每个标签上放置一个随机颜色这里是我的代码:
Color[] color = new Color[6];
Random rand = new Random();
int colorNumber;
final void setColor(int nc) {
colorNumber = nc;
w1.setBackground(color[colorNumber]); // label
w2.setBackground(color[colorNumber]); // label
w3.setBackground(color[colorNumber]); // label
}
void changeColor() {
color[0] = Color.RED;
color[1] = Color.GREEN;
color[2] = Color.BLUE;
color[3] = Color.YELLOW;
color[4] = Color.BLACK;
color[5] = Color.ORANGE;
int nc;
do {
nc = rand.nextInt(color.length);
} while (nc == colorNumber);
setColor(nc);
}
这是按钮
private void spinBtnActionPerformed(java.awt.event.ActionEvent evt) {
w1.setOpaque(true);
w2.setOpaque(true);
w3.setOpaque(true);
Timer timer;
timer = new Timer(100, new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
changeColor();
}
});
timer.start();
}
答案 0 :(得分:2)
使用此代码我可以在每个标签上获得相同的颜色
是的,因为您为所有标签设置了相同的颜色:
w1.setBackground(color[colorNumber]); // label
w2.setBackground(color[colorNumber]); // label
w3.setBackground(color[colorNumber]); // label
我需要时间方面的帮助,并在每个标签上放置一个随机颜色
您只需为每个标签设置不同的颜色即可。例如,通过进行这些更改:
Color color = new Color[6] {
Color.RED,
Color.GREEN,
Color.BLUE,
Color.YELLOW,
Color.BLACK,
Color.ORANGE
}; // Initialize this array just once
Random rand = new Random();
final void setColor(int nc, JLabel label) {
label.setBackground(color[nc]);
}
void changeColor() {
// Generate a new random int for each label
setColor(rand.nextInt(color.length), w1);
setColor(rand.nextInt(color.length), w2);
setColor(rand.nextInt(color.length), w3);
}