我用的是 JFXSlider
在javafx中,我使用了线性渐变作为 JFXSlider
的曲目(使用css)。不过,我还想将拇指的颜色更改为该位置的滑块的颜色。我使用了下面的css作为滑块的线性渐变,并去掉了 JFXSlider
:
.jfx-slider .track {
-fx-pref-height: 10;
-fx-background-color: linear-gradient(to right,red,orange);
}
.jfx-slider .colored-track {
-fx-background-color: transparent;
}
我尝试了下面的css代码以使拇指的颜色与当前位置的滑块的颜色相同,但是没有成功。
.jfx-slider .thumb {
-fx-background-color: linear-gradient(to right,red,orange);
}
我想这可能是因为我尝试的代码只为拇指的背景色提供了一个内部线性渐变。有人知道怎么解决这个问题吗?p、 我使用的是jfoenix 9.0.10、javafx 15和jdk 15。
1条答案
按热度按时间esyap4oy1#
一种可能的解决方案是添加一个全局css变量,并根据jfxslaider的当前值对其进行更改。例如:
然后在jfx滑块css规则上使用此变量,如:
之后,您需要弄清楚如何更新“-fx custom color”变量,以及如何确定需要为滑块的特定值(或者更确切地说是位置)设置哪种颜色。
首先,应该向value属性添加一个侦听器,以侦听值更改。其次,利用颜色类的插值方法来确定颜色,最后更新新的颜色值
-fx-custom-color
在jfxslaider中使用内联css样式。下面是一个完整的示例:
以及“custom jfoenix.css”文件
结果是: