Java 如何在jbutton上按鼠标移动jslider?

Java 如何在jbutton上按鼠标移动jslider?,java,swing,jbutton,jslider,Java,Swing,Jbutton,Jslider,我有两个JButton(jslider上的左和右)和一个jslider 按鼠标左键时,jslider需要向左移动 按鼠标右键时,jslider需要向右移动 请帮助我如何解决这个问题 谢谢 Jyoti根据,您只需使用setValue(int) 无效设置值(int) 设置或获取滑块的当前值。设置方法还可以定位滑块的旋钮 我假设您的意思是移动实际指针,而不是整个组件本身。如果要移动整个JSlider,应该使用.setLocation(int x,int y)方法 编辑:这取决于你需要做什么。如果要以编

我有两个JButton(jslider上的左和右)和一个jslider

按鼠标左键时,jslider需要向左移动

按鼠标右键时,jslider需要向右移动

请帮助我如何解决这个问题

谢谢 Jyoti

根据,您只需使用
setValue(int)

无效设置值(int)

设置或获取滑块的当前值。设置方法还可以定位滑块的旋钮

我假设您的意思是移动实际指针,而不是整个组件本身。如果要移动整个JSlider,应该使用
.setLocation(int x,int y)
方法

编辑:这取决于你需要做什么。如果要以编程方式移动滑块,可能需要放置一个Thread.sleep(超时),以便线程暂停一段时间,以便查看滑块的移动。另一方面,您可以在每次按下按钮时使滑块移动一次,例如,每次按下“左”按钮时,滑块的值减小10。右键的情况正好相反。后者似乎是使用最广泛的(至少据我所知)方法。

根据,您只需使用
setValue(int)

无效设置值(int)

设置或获取滑块的当前值。设置方法还可以定位滑块的旋钮

我假设您的意思是移动实际指针,而不是整个组件本身。如果要移动整个JSlider,应该使用
.setLocation(int x,int y)
方法

编辑:这取决于你需要做什么。如果要以编程方式移动滑块,可能需要放置一个Thread.sleep(超时),以便线程暂停一段时间,以便查看滑块的移动。另一方面,您可以在每次按下按钮时使滑块移动一次,例如,每次按下“左”按钮时,滑块的值减小10。右键的情况正好相反。后者似乎是使用最广泛的(至少据我所知)方法。

用于将滑块位置设置为值。该值应介于(包括)
JSlider#getMinimum
JSlider#getmax
之间,滑块将负责将该值转换为“像素位置”


编辑-您可以通过
线程#睡眠
引入延迟。在将下一条“setValue”消息发送到JSlider之前,只需“等待”几毫秒:

因此,当按下按钮时,您处于循环中:

while(isPressed) {
  adjustSliderByOneTick();
   try { 
     Thread.sleep(100);  // 100 milliseconds for a first test
   } catch (InterruptedException e) {
     break;
   }
}
如果松开按钮,则将
isPressed
标志设置为
false
,上述循环结束。

用于将滑块位置设置为值。该值应介于(包括)
JSlider#getMinimum
JSlider#getmax
之间,滑块将负责将该值转换为“像素位置”


编辑-您可以通过
线程#睡眠
引入延迟。在将下一条“setValue”消息发送到JSlider之前,只需“等待”几毫秒:

因此,当按下按钮时,您处于循环中:

while(isPressed) {
  adjustSliderByOneTick();
   try { 
     Thread.sleep(100);  // 100 milliseconds for a first test
   } catch (InterruptedException e) {
     break;
   }
}

如果松开按钮,您可以将
isPressed
标志设置为
false
,并且上述循环结束。

作为一种替代方法,您可以查看它,它结合了
JSlider
JSpinner
。它还可以很好地与键盘配合使用,并且可以根据大多数平台上用户首选的键盘重复频率进行调整。

作为替代方案,您可以看看它,它结合了
JSlider
JSpinner
。它还可以很好地与键盘配合使用,在大多数平台上,它可以根据用户喜欢的键盘重复频率进行调整。

谢谢您的回复。我在Jbutton的鼠标按下事件中使用了JSlider的setValue()方法。我使用while循环来减少或增加值。JSlider的移动速度非常快,而不是JSlider移动时的正常速度。你能给我提些建议吗?谢谢你的回复。我在Jbutton的鼠标按下事件中使用了JSlider的setValue()方法。我使用while循环来减少或增加值。JSlider的移动速度非常快,而不是JSlider移动时的正常速度。你能给我提些建议吗?谢谢你的回复。我在Jbutton的鼠标按下事件中使用了JSlider的setValue()方法。我使用while循环来减少或增加值。JSlider的移动速度非常快,而不是JSlider移动时的正常速度。你能给我提些建议吗?谢谢你的回复。我在Jbutton的鼠标按下事件中使用了JSlider的setValue()方法。我使用while循环来减少或增加值。JSlider的移动速度非常快,而不是JSlider移动时的正常速度。你能给我提些建议吗?