Nic*_*ner 2 java rgb enums colors operators
我正在处理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;
}
Run Code Online (Sandbox Code Playgroud)
有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);
}
Run Code Online (Sandbox Code Playgroud)