문제

나는 함께 일하고있다 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) 그들의 가치에 따라. 나는 생각하고있다 ... ENUMS?

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;

}
도움이 되었습니까?

해결책

색상이 있습니다. 브라더 및 색상 .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