以编程方式使JSlider看起来“按下”

时间:2013-10-10 03:32:55

标签: java swing look-and-feel jslider synth

所以我有一个具有自定义合成器外观的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状态来完成这项工作,该状态与按下状态相同。然后,我可以禁用滑块,移动滑块,稍后再次启用它。显然,这是一种非常酷的方式来实现紧迫的外观。任何其他想法将不胜感激。

0 个答案:

没有答案