Java 使图形2D文本延迟闪烁
我有一个draw方法,使用Graphics2D对象在屏幕上绘制字符串。我在draw方法中设置了一个if语句,使文本每秒绘制一次(闪烁效果),但文本将绘制一秒钟,然后不再只绘制一帧,而是继续绘制。我想让它画一秒钟,然后不画一秒钟,以此类推 以下是方法-Java 使图形2D文本延迟闪烁,java,timer,graphics2d,Java,Timer,Graphics2d,我有一个draw方法,使用Graphics2D对象在屏幕上绘制字符串。我在draw方法中设置了一个if语句,使文本每秒绘制一次(闪烁效果),但文本将绘制一秒钟,然后不再只绘制一帧,而是继续绘制。我想让它画一秒钟,然后不画一秒钟,以此类推 以下是方法- long elapsed = (System.nanoTime() - blinkTimer) / 1000000; if(elapsed < 1000){ // g.drawString("",x,y); Draw
long elapsed = (System.nanoTime() - blinkTimer) / 1000000;
if(elapsed < 1000){
// g.drawString("",x,y); Draw String Here
}else{
blinkTimer = System.nanoTime();
}
长时间运行=(System.nanoTime()-blinkTimer)/1000000;
如果(经过时间<1000){
//g.抽绳(“”,x,y);在这里抽绳
}否则{
blinkTimer=System.nanoTime();
}
blinkTimer在构造函数中初始化为System.nanoTime()代码>
我希望在不使用Java定时器对象的情况下完成这项工作。提前谢谢 添加了一个额外的计时器-
long elapsed = (System.nanoTime() - blinkTimer) / 1000000;
if(elapsed < 1000){
//g.drawString("",x,y); Draw String Here
breakTimer = System.nanoTime();
}
long breakElapsed = (System.nanoTime() - breakTimer) / 1000000;
if(breakElapsed > 500){
blinkTimer = System.nanoTime();
}
长时间运行=(System.nanoTime()-blinkTimer)/1000000;
如果(经过时间<1000){
//g、 抽绳(“”,x,y);在此处抽绳
breakTimer=System.nanoTime();
}
长时间中断时间=(System.nanoTime()-breakTimer)/1000000;
如果(断开时间>500){
blinkTimer=System.nanoTime();
}
为什么要在不使用Timer类的情况下执行此操作?这是可能的,但您当前的问题是,您需要第二个计时器用于颜色反转持续时间。@ElliottFrisch我自己的计时器增加了灵活性,是吗?我没看到它,在哪里?@ElliotFrisch我删除了它,以便为试图理解我的问题的人创建更可读的代码。