我的函数绘制三个随机数,并根据该数字为JLabel的图标(一,二,三)设置适当的图标。 2秒后,我需要更改此图标。
public void random() {
Random rand = new Random();
num1 = rand.nextInt(3);
num2 = rand.nextInt(3);
num3 = rand.nextInt(3);
if (num1==0){
one.setIcon(icon7);
}
if (num1==1){
one.setIcon(icon8);
}
if (num1==2){
one.setIcon(icon9);
}
if (num2==0){
two.setIcon(icon7);
}
if (num2==1){
two.setIcon(icon8);
}
if (num2==2){
two.setIcon(icon9);
}
if (num3==0){
three.setIcon(icon7);
}
if (num3==1){
three.setIcon(icon8);
}
if (num3==2){
three.setIcon(icon9);
}}
2秒后,我想像这样更改图标:
one.setIcon(icon10);
two.setIcon(icon10);
three.setIcon(icon10);
我不知道如何执行此操作,请帮助我:)
最佳答案
final Timer timer = new Timer(2000, null);
ActionListener listener = new ActionListsner() {
@Override
public void actionPerformed(ActionEvent e) {
one.setIcon(icon10);
two.setIcon(icon10);
three.setIcon(icon10);
}
};
timer.addActionListener(listener);
timer.start();
该代码每2秒调用一次setIcon函数,但是如果您只想调用1到2次,则可以将条件置于actionPerformed函数下……希望它对您有所帮助!