gpt4 book ai didi

java - 当达到特定值时停止 Java Swing 计时器

转载 作者:行者123 更新时间:2023-11-29 03:41:57 26 4
gpt4 key购买 nike

您好,我正在使用 Java Swing 定时器来点燃蜡烛。一切都很好,除了蜡烛几乎烧到底部的末端部分。当尺寸小于 15 时,计时器应该停止。现在我编写了一些代码,似乎我所做的 if/else 语句被完全忽略了。有人能告诉我我做错了什么吗?

下面您可以看到我的代码:(附注 getCandleSize 方法现在将长度从 500 带到 10 > 0,然后我得到负值)

package h04SelfBurnCandle;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import h02aKaars.DrawCandle;

public class CandlePanel extends JPanel implements ActionListener {

private boolean aan = true;
private int lengte = 500;
private int x;
private int y;
private int speed = 10;
private final int WACHTTIJD = 100; // wachttijd voor de timer

public CandlePanel() {

javax.swing.Timer autoburn = new javax.swing.Timer(WACHTTIJD,this);

autoburn.start();

}

DrawCandle candle = new DrawCandle();

@Override
public void paintComponent(Graphics g) {

super.paintComponent(g);
x = 10;
y = getHeight() - (lengte + 10);

for(int i=0; i < 5; i++) {

if(lengte > 15){

candle.drawCandle(g, x, y, lengte, aan);

}
else {

candle.drawCandleBurned(g, x, y, lengte);

}

x = x + 70;

System.out.println(lengte);

}

}

public int getCandleSize() {

do {
lengte -= speed;
}
while(lengte > 15);

return lengte;
}

@Override
public void actionPerformed(ActionEvent e) {

getCandleSize();
//System.out.println(lengte);
repaint();

}

}

最佳答案

getCandleSize() 被调用但它会导致 lengte 立即减少到 10。你想要的可能更像是:

public int getCandleSize() {
if(lengte > 15)
lengte -= speed;
else
autoburn.stop();

return lengte;
}

注意:您需要将自动刻录从本地更改为类成员。

关于java - 当达到特定值时停止 Java Swing 计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12763135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com