1

誰かがコンポーネントの段階的な色の変化を手伝ってもらえますか?色を変えて欲しい

new Color(255,0,0)  

new Color(0,0,0)  

タイマーを使ってさまざまなバリエーションを試しましたが、行き詰まりました。そしてところで、タイマーでこれを行うのは正しい方法ですか?

前もって感謝します!

4

2 に答える 2

4

これらの線に沿った何か:

Color before = new Color(255,0,0);
Color after = new Color(0,0,0);
Color current = before;
int maxtime = 1000;
int step = 0;

public void step()
{
    if(step == maxtime)
        return;
    step++;
    double percentComplete = step/maxtime;
    double percentGone = 1-percentComplete;
    int red = (int)(before.getRed()*percentGone+after.getRed()*percentComplete);
    int green = (int)(before.getGreen()*percentGone+after.getGreen()*percentComplete);
    int blue = (int)(before.getBlue()*percentGone+after.getBlue()*percentComplete);
    int alpha = (int)(before.getAlpha()*percentGone+after.getAlpha()*percentComplete);
    current = new Color(red, green, blue, alpha);
    //set component's color to current
}

赤、緑、青が255を超えないようにするために、いくつかのチェックを行う必要があるかもしれませんが、まだわかりません。

(この関数は、色を変更するコンポーネントに属している必要があります。タイマーティックごとにこれを呼び出す必要があります)

于 2012-05-11T09:08:06.680 に答える
4

クエストの代わりにJLayerを使用することを検討してください:-)

于 2012-05-11T10:34:21.093 に答える