Java 通过编程使JSlider外观“更美观”;按「;

Java 通过编程使JSlider外观“更美观”;按「;,java,swing,look-and-feel,jslider,synth,Java,Swing,Look And Feel,Jslider,Synth,所以我有一个JSlider,它有一个定制的synth外观,看起来像这样(在xml中): 现在,这很好地工作了,JSlider看起来应该是这样的。然后,我使用slider.setValue()以编程方式控制滑块的值我还可以通过编程在滑块上启动鼠标侦听器,因为它有一些代码在单击滑块和释放滑块时立即执行。同样,这一切都很好。然而,我似乎不知道如何告诉滑块在值改变时看起来被按下。有没有办法告诉swing,即使滑块没有被实际按下,它也会被按下(触发L&F中的按下状态) 编辑:我可以通过使用禁用状态来实

所以我有一个JSlider,它有一个定制的synth外观,看起来像这样(在xml中):


现在,这很好地工作了,JSlider看起来应该是这样的。然后,我使用
slider.setValue()以编程方式控制滑块的值我还可以通过编程在滑块上启动鼠标侦听器,因为它有一些代码在单击滑块和释放滑块时立即执行。同样,这一切都很好。然而,我似乎不知道如何告诉滑块在值改变时看起来被按下。有没有办法告诉swing,即使滑块没有被实际按下,它也会被按下(触发L&F中的
按下
状态)


编辑:我可以通过使用
禁用
状态来实现此功能,该状态与按下状态具有相同的外观。然后,我可以禁用滑块,将其四处移动,然后再次启用它。很明显,这是一个相当粗糙的方式来实现压缩的外观。如果还有其他想法,我们将不胜感激。

一定会有鼠标或按键事件。当我第一次设置滑块时,我会在其鼠标侦听器中循环,并在每个侦听器中调用mousePressed方法。最后一次移动滑块时,我以相同的方式调用MouseRelease方法。所以我应该给所有这些人打电话,他们似乎根本没有改变L&F。你在想什么样的按键事件?难道没有类似于ButtonModel的事件武装、选择、按下(正如你已经使用的)ButtonModel中有一个设置状态,但它看起来不适用于滑块。
<!-- 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.*" />