2012-04-30 3 views
1

Я хочу иметь JSlider с тремя типами цветов, каждый из которых занимает диапазон значений (например, от 1 до 10 - зеленый, от 10 до 20 - желтый, от 20 до 30 - красный), как это можно реализовать?цвет java JSlider на основе значения галочки

+2

Вы хотите фон иметь три полосы цвета? Или вы хотите, чтобы он был окрашен в один из трех цветов на основе выбранного значения? –

+0

@ Russell Zahniser: Я хочу, чтобы фон имел три полосы цвета, как я могу заставить GradientPaint сделать это на фоне JPanel – user121196

ответ

2

Edit:

К сожалению, по некоторым причинам я думал, что метод paintBackground() в JComponent. Я думаю, вы бы вместо этого сделать 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(); 
} 
Смежные вопросы