Java 如何做一个循环,或者每5秒执行一个任务,然后重置自己?
我需要让底部的for循环每5秒做一次身体内的所有事情,但它因为某种原因不起作用!抱歉,如果这听起来很愚蠢,我对java非常陌生!如果你能帮忙,那太好了!谢谢!:)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实
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
}
}