首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSlider替代方案

JSlider替代方案
EN

Stack Overflow用户
提问于 2012-04-18 02:31:37
回答 1查看 1.9K关注 0票数 4

我刚刚意识到JSlider不能处理浮点数。有没有人能推荐一个可以的Swing/AWT替代方案?

编辑:或某种描述的变通方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-18 02:47:07

滑块一般处理数字的范围。从实际实现来看,每个滑块必须有两个元素:

  1. A起始位置。
  2. 有限数量的“下一步”增量。

是“有限数”给你带来了麻烦。如果没有有限数量的增量,滑块将无法在屏幕上显示。对于有限数量的增量,不可能选择介于两个增量“步长”之间的float数。

简而言之,这是不可能的;因此,以下是解决方法:

  1. 决定输入的“浮动”端的范围。这个range.
  2. Decide可以是0.0f to 10.0f或者其他什么,这都没关系,但是你必须在你希望支持的最小增量上有一个but。这个increment.
  3. Create可以是0.1f,也可以是0.001f,或者其他什么,这都无关紧要,但是你必须有一个函数和一对函数。一个是获取滑块整数值并将其“映射”到浮点值,另一个是获取浮点值并将其“映射”到一个滑块值。

例如,对于以0.1f为增量的5.0f to 10.0f

代码语言:javascript
复制
((10.0f - 5.0f) / 0.1f) + 1 = 51 increments (0 to 50)

updateSlider(float value) {
  if (value > 10.0f) {
    Slider.setValue(50);
  } else if (value < 5.0f) {
    Slider.setValue(0);
  } else {
    Slider.setValue((int)Math.round((value - 5.0f)/0.1f));
  }
}

float updateFloat(Slider slider) {
  int value = slider.getValue();
  return 5.0f + (slider.getValue() * 0.1f);
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10196928

复制
相关文章

相似问题

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