白から黒に色が変わるタイマーがありますが、いくつか問題があります。
RGB 値を表す int の配列があります。
100ms ごとに実行され、配列内の RGB 値を減らすタイマーがあります。
私が抱えている問題は、真ん中に緑、黄色、赤などの他の色になってしまうことです.
私がやろうとしているのは、白から黒にフェードすることです。そのため、タイマーが実行されると、色が異なるグレーの色合いになる必要があります。
グローバル変数を宣言して呼び出しますfading
。
Color fading = Color.white;
あなたのタイマーの本体で:
if(fading.getRed()>0){
fading = new Color(fading.getRed()-1,fading.getGreen()-1,fading.getBlue()-1);
//do whatever you have to do with your fading color
}
タイマーがこのコードを実行するたびに、RGB 値が白から黒に減少します。
結果:
LOOP NO | COLOR
1: R=255, G=255, B=255
2: R=254, G=254, B=254
3: R=253, G=253, B=253
4: R=252, G=252, B=252
5: R=251, G=251, B=251
6: R=250, G=250, B=250
.
.
.
255: R=0, G=0, B=0
編集
例:
import java.awt.Color;
public Class YourClass{
Color fading = Color.white;
public YourClass(){
TimerTask task = new TimerTask() {
@Override
public void run() {
if (fading.getRed() > 0) {
fading = new Color(fading.getRed() - 1, fading.getGreen() - 1, fading.getBlue() - 1);
//do other stuff here
}
}
};
Timer timer = new Timer();
timer.scheduleAtFixedRate(task, 0, 100);
}
}