我的函数绘制三个随机数,并根据该数字为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函数下……希望它对您有所帮助!

10-08 14:35