Java 如何做一个循环,或者每5秒执行一个任务,然后重置自己?

Java 如何做一个循环,或者每5秒执行一个任务,然后重置自己?,java,for-loop,seconds,Java,For Loop,Seconds,我需要让底部的for循环每5秒做一次身体内的所有事情,但它因为某种原因不起作用!抱歉,如果这听起来很愚蠢,我对java非常陌生!如果你能帮忙,那太好了!谢谢!:) package-rBP; 导入java.applet.applet; 导入java.awt.Color; 导入java.awt.Font; 导入java.awt.Graphics; 导入java.awt.event.MouseEvent; 导入java.awt.event.MouseListener; 公共类Main扩展Applet实

我需要让底部的for循环每5秒做一次身体内的所有事情,但它因为某种原因不起作用!抱歉,如果这听起来很愚蠢,我对java非常陌生!如果你能帮忙,那太好了!谢谢!:)

package-rBP;
导入java.applet.applet;
导入java.awt.Color;
导入java.awt.Font;
导入java.awt.Graphics;
导入java.awt.event.MouseEvent;
导入java.awt.event.MouseListener;
公共类Main扩展Applet实现MouseListener{
公共void init(){
super.init();
addMouseListener(这个);
}
公共长numClicks=0;//16385
public int autoFingerNum=0;
public int faultyButtonNum=0;
公共整数n=0;
公共int coolButtonNum=0;
public int heatSinkNum=0;
公共int superButtonNum=0;
公共成本=30;
公共int aFValue=1;
公共成本=75;
公共值=3;
公共int slBCost=300;
公共int SLB值=10;
公共成本=1000;
公共值=25;
公共成本=5000;
公共int hSValue=80;
公共内部子成本=10000;
公共int子值=200;
@凌驾
公共空间涂料(图g){
此.setSize(1010360);
g、 setColor(Color.cyan);
g、 fillRect(0,0,1010,360);//背景
g、 设置颜色(颜色为黑色);
g、 圆角(47,47,205,205);//按钮轮廓
g、 setColor(Color.red);
g、 圆角(50,50,200,200);//按钮
g、 setColor(颜色为黄色);
g、 fillRect(2,529030);//黄色框
g、 fillRect(300、25、100、250);
g、 fillRect(410,25100250);
g、 fillRect(520,25100250);
g、 fillRect(63025100250);
g、 fillRect(74025100250);
g、 fillRect(850、25、100、250);
g、 设置颜色(颜色为黑色);
g、 抽绳(300100400100);//黄色方框上的线
g、 抽绳(410100510100);
g、 抽绳(520、100、620、100);
g、 抽绳(630100730100);
g、 抽绳(740100840100);
g、 抽绳(850、100、950、100);
g、 抽绳(300190400190);
g、 抽绳(410190510190);
g、 抽绳(520190620190);
g、 抽绳(630190730190);
g、 抽绳(740190840190);
g、 抽绳(850、190、950、190);
g、 fillRect(307197,86,71);//在“购买”按钮周围的框
g、 fillRect(417197,86,71);
g、 fillRect(527197,86,71);
g、 fillRect(637197,86,71);
g、 fillRect(747197,86,71);
g、 fillRect(857197,86,71);
g、 setColor(Color.red);
g、 fillRect(310、200、80、65);//红色的“购买”按钮
g、 fillRect(420、200、80、65);
g、 fillRect(530200,80,65);
g、 fillRect(640200,80,65);
g、 fillRect(750、200、80、65);
g、 fillRect(8602008065);
g、 设置颜色(颜色为黑色);
g、 setFont(新字体(“默认”,Font.BOLD,12));
g、 抽绳(“点数:+numClicks,5,25);//点数
g、 setFont(新字体(“默认”,Font.BOLD,20));
g、 抽绳(“DO”,135、120);
g、 抽绳(“非”,127、150);
g、 抽绳(按115、180);
g、 setFont(新字体(“默认”,Font.BOLD,16));
g、 抽绳(“自动指”,310,50);
g、 抽绳(“FaultyButton”,411,50);
g、 抽绳(“滑扣”,524,50);
g、 拉丝(“酷扣”,635,50);
g、 抽绳(“散热器”,754,50);
g、 抽绳(“超级按钮”,851,50);
g、 抽绳(“+1p/5s”,310,75);
g、 抽绳(“+3p/5s”,434,75);
g、 抽绳(“+10p/5s”,540,75);
g、 抽绳(“+40p/5s”,648,75);
g、 拉丝(“+100p/5s”,756,75);
g、 拉丝(“+500p/5s”,866,75);
g、 抽绳(“购买:30便士”,315240);
g、 抽绳(“买:75便士”,425240);
g、 抽绳(“购买:300P”,530240);
g、 setFont(新字体(“默认”,Font.BOLD,15));
g、 抽绳(“买:1000便士”,642240);
g、 抽绳(“购买:5000P”,752240);
g、 setFont(新字体(“默认”,Font.BOLD,13));
g、 抽绳(“买:10000便士”,862240);
g、 setFont(新字体(“默认”,Font.BOLD,12));
g、 抽绳(“aFNumber:+autoFingerNum,305150);
g、 抽绳(“fBNumber:”+faultyButtonNum,415150);
g、 抽绳(“sBNumber:+slickButtonNum,525150);
g、 抽绳(cBNumber:+coolButtonNum,635150);
g、 抽绳(“hSNumber:+heatSinkNum,745150);
g、 抽绳(“sBNumber:”+superButtonNum,855150);
}
@凌驾
公共无效mouseClicked(MouseEvent e){
如果((e.getX()>50和&e.getX()<250)
&&(e.getY()>50和e.getY()<250)){
numClicks++;
重新油漆();
}
如果((e.getX()>310和&e.getX()<390)
&&(e.getY()>200和e.getY()<265)
&&numClicks>(aFCost-1)){
autoFingerNum++;
numClicks-=aFCost;
重新油漆();
}
如果((e.getX()>420和&e.getX()<500)
&&(e.getY()>200和e.getY()<265)
&&numClicks>(fBCost-1)){
faultyButtonNum++;
numClicks-=成本;
重新油漆();
}
如果((e.getX()>530和&e.getX()<610)
&&(e.getY()>200和e.getY()<265)
&&numClicks>(slBCost-1)){
努姆++;
numClicks-=slBCost;
重新油漆();
}
如果((e.getX()>640和&e.getX()<720)
&&(e.getY()>200和e.getY()<265)
&&numClicks>(cBCost-1)){
coolButtonNum++;
numClicks-=成本成本;
重新油漆();
}
如果((e.getX()>750和&e.getX()<830)
&&(e.getY()>200和e.getY()<265)
&&numClicks>(hs成本-1)){
heatSinkNum++;
numClicks-=hs成本;
重新油漆();
}
如果((e.getX()>860&&e.getX()<940)
&&(e.getY()>200和e.getY()<265)
&&numClicks>(子成本-1)){
superButtonNum++;
numClicks-=子成本;
重新油漆();
}
}
@凌驾
公共无效鼠标事件(鼠标事件arg0){
}
@凌驾
public void mouseexitted(MouseEvent arg0){
}
@凌驾
public void mousePressed(MouseEvent arg0){
}
@凌驾
消除公众真空
package rBP;

import java.applet.Applet;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

public class Main extends Applet implements MouseListener {
public void init() {
    super.init();
    addMouseListener(this);
}

public long numClicks = 0; // 16385
public int autoFingerNum = 0;
public int faultyButtonNum = 0;
public int slickButtonNum = 0;
public int coolButtonNum = 0;
public int heatSinkNum = 0;
public int superButtonNum = 0;
public int aFCost = 30;
public int aFValue = 1;
public int fBCost = 75;
public int fBValue = 3;
public int slBCost = 300;
public int slBValue = 10;
public int cBCost = 1000;
public int cBValue = 25;
public int hSCost = 5000;
public int hSValue = 80;
public int suBCost = 10000;
public int suBValue = 200;

@Override
public void paint(Graphics g) {
    this.setSize(1010, 360);
    g.setColor(Color.cyan);
    g.fillRect(0, 0, 1010, 360); // background
    g.setColor(Color.black);
    g.fillOval(47, 47, 205, 205); // button outline
    g.setColor(Color.red);
    g.fillOval(50, 50, 200, 200); // button
    g.setColor(Color.yellow);
    g.fillRect(2, 5, 290, 30); // yellow boxes
    g.fillRect(300, 25, 100, 250);
    g.fillRect(410, 25, 100, 250);
    g.fillRect(520, 25, 100, 250);
    g.fillRect(630, 25, 100, 250);
    g.fillRect(740, 25, 100, 250);
    g.fillRect(850, 25, 100, 250);
    g.setColor(Color.black);
    g.drawLine(300, 100, 400, 100); // lines on yellow boxes
    g.drawLine(410, 100, 510, 100);
    g.drawLine(520, 100, 620, 100);
    g.drawLine(630, 100, 730, 100);
    g.drawLine(740, 100, 840, 100);
    g.drawLine(850, 100, 950, 100);
    g.drawLine(300, 190, 400, 190);
    g.drawLine(410, 190, 510, 190);
    g.drawLine(520, 190, 620, 190);
    g.drawLine(630, 190, 730, 190);
    g.drawLine(740, 190, 840, 190);
    g.drawLine(850, 190, 950, 190);
    g.fillRect(307, 197, 86, 71); // boxes around "buy" buttons
    g.fillRect(417, 197, 86, 71);
    g.fillRect(527, 197, 86, 71);
    g.fillRect(637, 197, 86, 71);
    g.fillRect(747, 197, 86, 71);
    g.fillRect(857, 197, 86, 71);
    g.setColor(Color.red);
    g.fillRect(310, 200, 80, 65); // red "buy" buttons
    g.fillRect(420, 200, 80, 65);
    g.fillRect(530, 200, 80, 65);
    g.fillRect(640, 200, 80, 65);
    g.fillRect(750, 200, 80, 65);
    g.fillRect(860, 200, 80, 65);
    g.setColor(Color.black);
    g.setFont(new Font("default", Font.BOLD, 12));
    g.drawString("Number of Points: " + numClicks, 5, 25); // num of points
    g.setFont(new Font("default", Font.BOLD, 20));
    g.drawString("DO", 135, 120);
    g.drawString("NOT", 127, 150);
    g.drawString("PRESS", 115, 180);
    g.setFont(new Font("default", Font.BOLD, 16));
    g.drawString("AutoFinger", 310, 50);
    g.drawString("FaultyButton", 411, 50);
    g.drawString("SlickButton", 524, 50);
    g.drawString("CoolButton", 635, 50);
    g.drawString("HeatSink", 754, 50);
    g.drawString("SuperButton", 851, 50);
    g.drawString("+1p/5s", 310, 75);
    g.drawString("+3p/5s", 434, 75);
    g.drawString("+10p/5s", 540, 75);
    g.drawString("+40p/5s", 648, 75);
    g.drawString("+100p/5s", 756, 75);
    g.drawString("+500p/5s", 866, 75);
    g.drawString("Buy: 30P", 315, 240);
    g.drawString("Buy: 75P", 425, 240);
    g.drawString("Buy: 300P", 530, 240);
    g.setFont(new Font("default", Font.BOLD, 15));
    g.drawString("Buy: 1000P", 642, 240);
    g.drawString("Buy: 5000P", 752, 240);
    g.setFont(new Font("default", Font.BOLD, 13));
    g.drawString("Buy: 10000P", 862, 240);
    g.setFont(new Font("default", Font.BOLD, 12));
    g.drawString("aFNumber: " + autoFingerNum, 305, 150);
    g.drawString("fBNumber: " + faultyButtonNum, 415, 150);
    g.drawString("sBNumber: " + slickButtonNum, 525, 150);
    g.drawString("cBNumber: " + coolButtonNum, 635, 150);
    g.drawString("hSNumber: " + heatSinkNum, 745, 150);
    g.drawString("sBNumber: " + superButtonNum, 855, 150);

}

@Override
public void mouseClicked(MouseEvent e) {

    if ((e.getX() > 50 && e.getX() < 250)
            && (e.getY() > 50 && e.getY() < 250)) {
        numClicks++;
        repaint();
    }
    if ((e.getX() > 310 && e.getX() < 390)
            && (e.getY() > 200 && e.getY() < 265)
            && numClicks > (aFCost - 1)) {
        autoFingerNum++;
        numClicks -= aFCost;
        repaint();
    }
    if ((e.getX() > 420 && e.getX() < 500)
            && (e.getY() > 200 && e.getY() < 265)
            && numClicks > (fBCost - 1)) {
        faultyButtonNum++;
        numClicks -= fBCost;
        repaint();
    }
    if ((e.getX() > 530 && e.getX() < 610)
            && (e.getY() > 200 && e.getY() < 265)
            && numClicks > (slBCost - 1)) {
        slickButtonNum++;
        numClicks -= slBCost;
        repaint();
    }
    if ((e.getX() > 640 && e.getX() < 720)
            && (e.getY() > 200 && e.getY() < 265)
            && numClicks > (cBCost - 1)) {
        coolButtonNum++;
        numClicks -= cBCost;
        repaint();
    }
    if ((e.getX() > 750 && e.getX() < 830)
            && (e.getY() > 200 && e.getY() < 265)
            && numClicks > (hSCost - 1)) {
        heatSinkNum++;
        numClicks -= hSCost;
        repaint();
    }
    if ((e.getX() > 860 && e.getX() < 940)
            && (e.getY() > 200 && e.getY() < 265)
            && numClicks > (suBCost - 1)) {
        superButtonNum++;
        numClicks -= suBCost;
        repaint();
    }

}

@Override
public void mouseEntered(MouseEvent arg0) {
}

@Override
public void mouseExited(MouseEvent arg0) {
}

@Override
public void mousePressed(MouseEvent arg0) {
}

@Override
public void mouseReleased(MouseEvent arg0) {
}

public void output() {
    for (int i = 0; i >= 50; i++) {     //<- I just set it at 50 for testing              purposes
                    i = 0;
        numClicks += autoFingerNum * aFValue;
        numClicks += faultyButtonNum * fBValue;
        numClicks += slickButtonNum * slBValue;
        numClicks += coolButtonNum * cBValue;
        numClicks += heatSinkNum * hSValue;
        numClicks += superButtonNum * suBValue;
    }
}
boolean continueExec = true; //you can use this to exit the loop

public void output() {

   while(this.continueExec ){
        Thread.sleep(5000); //wait 5 seconds     
        numClicks += autoFingerNum * aFValue;
        numClicks += faultyButtonNum * fBValue;
        numClicks += slickButtonNum * slBValue;
        numClicks += coolButtonNum * cBValue;
        numClicks += heatSinkNum * hSValue;
        numClicks += superButtonNum * suBValue;
    }
}
Thread timer = new Thread(){
        public void run(){
            try{
                while(true ){

                    numClicks += autoFingerNum * aFValue;
                    numClicks += faultyButtonNum * fBValue;
                    numClicks += slickButtonNum * slBValue;
                    numClicks += coolButtonNum * cBValue;
                    numClicks += heatSinkNum * hSValue;
                    numClicks += superButtonNum * suBValue;
                    repaint();
                    sleep(5000);
                }


            }catch(InterruptedException e){
                e.printStackTrace();
            }finally{

            }
        }
    };
    timer.start();
TimerTask task = new MyTask();
Timer timer = new Timer();
timer.scheduleAtFixedRate(task, startTime, interval);
public class MyTask extends TimerTask {
    @Override
    public void run() {
        // do work here
    }
}