我有两个jbutton( jslider上的左边和右边)和一个jslider。
在按下鼠标左J键时,jslider需要向左移动。
在按下鼠标右键时,需要将jslider向右移动。
请帮帮我,我该如何解决这个问题。
谢谢Jyoti
发布于 2010-11-10 15:37:00
根据here的说法,您所需要做的就是使用setValue(int)
无效setValue(整型)
设置或获取滑块的当前值。set方法还定位滑块的旋钮。
我假设你的意思是移动实际的指针,而不是整个组件本身。如果要移动整个JSlider,则应使用.setLocation(int x, int y)方法。
编辑:这取决于你需要做什么。如果要以编程方式移动滑块,则可能需要设置一个超时(Thread.sleep),以便线程暂停一段时间,以便您可以看到滑块正在移动。另一方面,您可以使滑块在每次按下按钮时移动一次,例如,每次按下“左”按钮时,滑块的值将减少10。右按钮的情况正好相反。后者似乎是使用最广泛(至少据我所知)的方法。
发布于 2010-11-10 15:38:33
JSlider#setValue用于将滑块位置设置为value。该值应在(包括) JSlider#getMinimum和JSlider#getMaximum之间的范围内,滑块将负责将该值转换为“像素位置”。
编辑-您可以使用Thread#sleep引入延迟。在向JSlider发送下一条"setValue“消息之前,您只需要”等待“几毫秒:
因此,当按下按钮时,您处于循环中:
while(isPressed) {
adjustSliderByOneTick();
try {
Thread.sleep(100); // 100 milliseconds for a first test
} catch (InterruptedException e) {
break;
}
}如果释放按钮,则将isPressed标志设置为false,上面的循环结束。
发布于 2010-11-10 20:23:48
作为另一种选择,您可以看看结合了JSlider和JSpinner的SpinSlider。它还可以很好地与键盘配合使用,并且可以根据用户在大多数平台上首选的键盘重复频率进行调整。
https://stackoverflow.com/questions/4142149
复制相似问题