Java 2秒后的第二个线程

Java 2秒后的第二个线程,java,multithreading,random,jlabel,Java,Multithreading,Random,Jlabel,我的函数绘制三个随机数,并根据此数为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);

我的函数绘制三个随机数,并根据此数为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);
我不知道,怎么做,请帮帮我:)

此代码每2秒调用一次setIcon函数,但如果只想调用一两次,可以将条件置于actionPerformed函数下。。。希望它对你有帮助

此代码每2秒调用一次setIcon函数,但如果只想调用一两次,可以将条件置于actionPerformed函数下。。。希望它对你有帮助

此代码每2秒调用一次setIcon函数,但如果只想调用一两次,可以将条件置于actionPerformed函数下。。。希望它对你有帮助


此代码每2秒调用一次setIcon函数,但如果只想调用一两次,可以将条件置于actionPerformed函数下。。。希望它对你有帮助

我会先更改一下您的代码:

private static final Random rand = new Random();

//somewhere on init.
final JLabel[] myLabels = new JLabel[3];
for(int i = 0; i < myLabels.length; ++i) {
    myLabels[i] = new JLabel();
    //add to panel or whatever.
}

private void setIcon(final int value, final JLabel label) {
    switch(value) {
        case 0:
            label.setIcon(icon7);
            break;
        case 1:
            label.setIcon(icon8);
            break;
        case 2:
            label.setIcon(icon9);
            break;
        default:
            throw new IllegalArgumentException("Value must be between 0 and 2.");
    }
}

public void random() {
    for(int i = 0; i < myLabels.length; ++i) {
        setLabel(rand.nextInt(3), myLabels[i]);
    }
    scheduleReset();
}

我会先更改一下您的代码:

private static final Random rand = new Random();

//somewhere on init.
final JLabel[] myLabels = new JLabel[3];
for(int i = 0; i < myLabels.length; ++i) {
    myLabels[i] = new JLabel();
    //add to panel or whatever.
}

private void setIcon(final int value, final JLabel label) {
    switch(value) {
        case 0:
            label.setIcon(icon7);
            break;
        case 1:
            label.setIcon(icon8);
            break;
        case 2:
            label.setIcon(icon9);
            break;
        default:
            throw new IllegalArgumentException("Value must be between 0 and 2.");
    }
}

public void random() {
    for(int i = 0; i < myLabels.length; ++i) {
        setLabel(rand.nextInt(3), myLabels[i]);
    }
    scheduleReset();
}

我会先更改一下您的代码:

private static final Random rand = new Random();

//somewhere on init.
final JLabel[] myLabels = new JLabel[3];
for(int i = 0; i < myLabels.length; ++i) {
    myLabels[i] = new JLabel();
    //add to panel or whatever.
}

private void setIcon(final int value, final JLabel label) {
    switch(value) {
        case 0:
            label.setIcon(icon7);
            break;
        case 1:
            label.setIcon(icon8);
            break;
        case 2:
            label.setIcon(icon9);
            break;
        default:
            throw new IllegalArgumentException("Value must be between 0 and 2.");
    }
}

public void random() {
    for(int i = 0; i < myLabels.length; ++i) {
        setLabel(rand.nextInt(3), myLabels[i]);
    }
    scheduleReset();
}

我会先更改一下您的代码:

private static final Random rand = new Random();

//somewhere on init.
final JLabel[] myLabels = new JLabel[3];
for(int i = 0; i < myLabels.length; ++i) {
    myLabels[i] = new JLabel();
    //add to panel or whatever.
}

private void setIcon(final int value, final JLabel label) {
    switch(value) {
        case 0:
            label.setIcon(icon7);
            break;
        case 1:
            label.setIcon(icon8);
            break;
        case 2:
            label.setIcon(icon9);
            break;
        default:
            throw new IllegalArgumentException("Value must be between 0 and 2.");
    }
}

public void random() {
    for(int i = 0; i < myLabels.length; ++i) {
        setLabel(rand.nextInt(3), myLabels[i]);
    }
    scheduleReset();
}

如果您想在设置时只调用一次,请说
timer.setRepeats(false)在创建后立即调用。如果您想在设置时调用一次,请说
timer.setRepeats(false)在创建后立即调用。如果您想在设置时调用一次,请说
timer.setRepeats(false)在创建后立即调用。如果您想在设置时调用一次,请说
timer.setRepeats(false)在其创建之后。