2012-04-30 6 views
1

JSliderに3種類の色(それぞれ1〜10が緑、10〜20が黄色、20〜30が赤色など)を占めるようにしたいこれはどのように実装できますか?color javaティックの値に基づくJSlider

+2

:私はあなたの代わりに(superは、バックグラウンドをペイントしないように)setOpaque(false)を行い、その後、このようなpaintComponent()をオーバーライドする必要があるだろうと思いますか?それとも、選択した値に基づいて3つの色のうちの1つに色付けしたいのですか? –

+0

@Russell Zahniser:バックグラウンドに3つの色のストライプがあるようにしたいのですが、GradientPaintをバックグラウンドJPanelにするにはどうしたらいいですか? – user121196

答えて

2

編集:

おっと、私はJComponentの中paintBackground()方法があったと思ったいくつかの理由があります。あなたは背景が色の3本のストライプを持っていると思いますか

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(); 
} 
関連する問題