0

私の関数は 3 つの乱数を描画し、この数に応じて JLabel の適切なアイコン (1、2、3) を設定します。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);

私はこれを行う方法がわかりません、私を助けてください:)

4

2 に答える 2

3
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 関数の下に条件を配置できます...お役に立てば幸いです!..

于 2013-10-25T12:40:07.363 に答える