2012-04-30 4 views
1

각 범위의 값을 사용하는 세 가지 종류의 색상 (예 : 1 ~ 10은 녹색, 10 ~ 20은 노란색, 20 ~ 30은 빨간색) 인 JSlider를 갖고 싶습니다. 이것이 어떻게 구현 될 수 있는가?color java tick 값을 기반으로 한 JSlider

+2

당신은 색상의 세 가지 줄무늬를 가지고있는 배경 하시겠습니까 : 나는 당신이 대신 (배경을 그릴하지 않습니다 super 있도록) setOpaque(false) 할 다음과 같은 paintComponent()을 무시해야 할 것 같아요? 또는 선택한 값에 따라 세 가지 색상 중 하나의 색상으로 지정 하시겠습니까? –

+0

@ Russell Zahniser : 백그라운드에 3 개의 줄무늬가 있기를 원한다면 GradientPaint를 배경 JPanel에 어떻게 만들 수 있습니까? – user121196

답변

2

편집 :

아차, 내가 JComponent의에서 paintBackground() 방법이라고 생각 몇 가지 이유.

protected void paintComponent(Graphics g) { 
    int w = getWidth(); 
    int h = getHeight(); 
    int x1 = w/3; 
    int x2 = w * 2/3; 

    g.setColor(Color.GREEN); 
    g.fillRect(0, 0, x1, h) 
    g.setColor(Color.YELLOW); 
    g.fillRect(x1, 0, x2 - x1, h) 
    g.setColor(Color.RED); 
    g.fillRect(x2, 0, w - x2, h) 

    super.paintComponent(); 
}