color java JSlider基于tick值

时间:2012-04-30 20:37:17

标签: java swing colors jslider

我想要一个有三种颜色的JSlider,每种颜色占据一系列值(例如,1到10是绿色,10到20是黄色,20到30是红色),如何实现?< / p>

1 个答案:

答案 0 :(得分: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();
}