所以我有一个具有自定义合成器外观的JSlider,看起来像这样(在xml中):
<!-- Make and Bind a SliderTrack style -->
<style id="SliderTrackStyle">
<opaque value="FALSE"/>
</style>
<bind style="SliderTrackStyle" type="region" key="sliderTrack" />
<!-- Make and Bind a Vertical Slider Thumb style -->
<style id="verticalSliderThumbStyle">
<state>
<imagePainter method="sliderThumbBackground" path="/resources/images/slider/SliderThumbVertical.png"
sourceInsets="0 0 0 0"/>
</state>
<state value="PRESSED">
<imagePainter method="sliderThumbBackground" path="/resources/images/slider/SliderThumbVerticalPressed.png"
sourceInsets="0 0 0 0"/>
</state>
</style>
<bind style="verticalSliderThumbStyle" type="name" key="VerticalSlider.*" />
现在,这很好用,JSlider看起来应该如此。然后,我使用slider.setValue();
以编程方式控制滑块的值。我也可以以编程方式在滑块上触发鼠标侦听器,因为它有一些代码可以在单击滑块时以及何时释放时执行。再次,这一切都运作良好。但是,我似乎无法弄清楚当值改变时如何告诉滑块看起来按下。有没有办法告诉摇摆使滑块看起来按下,即使它没有被物理按下(触发L&amp; F中的PRESSED
状态?)
编辑:我可以使用DISABLED
状态来完成这项工作,该状态与按下状态相同。然后,我可以禁用滑块,移动滑块,稍后再次启用它。显然,这是一种非常酷的方式来实现紧迫的外观。任何其他想法将不胜感激。