4

私はjava.awt.Colorインスタンスを扱っています。色の算術演算を行う方法はありますか? みたいなrgb(20, 20, 20) + rgb(10, 200, 170) = rgb(30, 220, 190)

私がやろうとしていること: ユーザーがセルをクリックすると、選択したセルとの関係に基づいて他のセルの色が変わるテーブルを備えた GUI があります。ベースカラーが何であるか、およびどのカラー値が変更されるかをハードコーディングしないようにする方法を探しています。

したがって、選択されたセルは である可能性がありrgb(255, 0, 0)、他のすべてはそれらの値の間にrgb(0, 0, 0)rgb(0, 255, 0)に基づいている可能性があります。私は考えています...列挙型?

import java.awt.Color;

public enum ColorConstant {
    SELECTED (new rgb(255, 0, 0), "Red"),
    MAX_DISTANCE (new rgb(0, 255, 0), "Green")

    private Color shade;
    private ??? whichColorToModify;

}
4

2 に答える 2

7

Color.brighter と Color.darker というメソッドがあります。

それ以外では、通常、次のような目的で小さなユーティリティ メソッドを作成します。

private static Color brightness(Color c, double scale) {
    int r = Math.min(255, (int) (c.getRed() * scale));
    int g = Math.min(255, (int) (c.getGreen() * scale));
    int b = Math.min(255, (int) (c.getBlue() * scale));
    return new Color(r,g,b);
}
于 2009-10-24T14:51:22.243 に答える
2

HSLColorは、探しているものかもしれません。色のトーン/シェードを簡単に調整できます。

于 2009-10-24T15:15:33.130 に答える