2012-04-30 61 views
1

我想擁有一種JSlider,它具有三種顏色,每種顏色都佔據一系列值(例如,1到10是綠色,10到20是黃色,20到30是紅色),這怎麼能實現?color java基於tick值的JSlider

+2

你想有顏色的三個條紋的背景?或者您是否希望根據所選值爲其着色三種顏色之一? –

+0

@Russell Zahniser:我希望背景有三個顏色條紋,我如何讓GradientPaint將它做到背景JPanel – user121196

回答

2

編輯:

哎呀,由於某種原因,我覺得有在JComponent中一個paintBackground()方法。我想你,而不是必須做setOpaque(false)(這樣super不畫背景),然後覆蓋paintComponent()這樣的:

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