首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在按下jbutton上的鼠标时移动jslider?

如何在按下jbutton上的鼠标时移动jslider?
EN

Stack Overflow用户
提问于 2010-11-10 15:32:10
回答 3查看 2.5K关注 0票数 1

我有两个jbutton( jslider上的左边和右边)和一个jslider。

在按下鼠标左J键时,jslider需要向左移动。

在按下鼠标右键时,需要将jslider向右移动。

请帮帮我,我该如何解决这个问题。

谢谢Jyoti

EN

回答 3

Stack Overflow用户

发布于 2010-11-10 15:37:00

根据here的说法,您所需要做的就是使用setValue(int)

无效setValue(整型)

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

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

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

票数 2
EN

Stack Overflow用户

发布于 2010-11-10 15:38:33

JSlider#setValue用于将滑块位置设置为value。该值应在(包括) JSlider#getMinimumJSlider#getMaximum之间的范围内,滑块将负责将该值转换为“像素位置”。

编辑-您可以使用Thread#sleep引入延迟。在向JSlider发送下一条"setValue“消息之前,您只需要”等待“几毫秒:

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

代码语言:javascript
复制
while(isPressed) {
  adjustSliderByOneTick();
   try { 
     Thread.sleep(100);  // 100 milliseconds for a first test
   } catch (InterruptedException e) {
     break;
   }
}

如果释放按钮,则将isPressed标志设置为false,上面的循环结束。

票数 2
EN

Stack Overflow用户

发布于 2010-11-10 20:23:48

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4142149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档