我想要一个具有三种颜色的JSlider,每种颜色占据一定的值范围(例如1到10是绿色,10到20是黄色,20到30是红色),如何实现?
最佳答案
编辑:
哎呀,出于某种原因,我认为 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();
}
关于java - 基于刻度值的颜色java JSlider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10390251/