質問

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;

}
役に立ちましたか?

解決

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);
}

他のヒント

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top