Java 使用JSlider创建日期选择器?

Java 使用JSlider创建日期选择器?,java,swing,datepicker,jslider,Java,Swing,Datepicker,Jslider,我想使用JSlider实现一个日期选择器。用户应该能够使用滑块在两个之前已知的日期之间自由选择。我见过这样的例子: 但我想做同样的事情,只使用一个滑块。两点之间的最小距离(勾号)应为一天。如何实现的任何提示?如果您想要一个最小值为1.1.2012,最大值为10.1.2012的滑块,只需创建一个最小值为0,最大值为间隔天数的滑块,然后将所选数字添加到1.1.2012 我假设10.1.2012意味着1月10日,因此滑块的最小值为0,最大值为9。然后相应地设置标签。我无法想象如何使用一个JSlide

我想使用JSlider实现一个日期选择器。用户应该能够使用滑块在两个之前已知的日期之间自由选择。我见过这样的例子:


但我想做同样的事情,只使用一个滑块。两点之间的最小距离(勾号)应为一天。如何实现的任何提示?

如果您想要一个最小值为1.1.2012,最大值为10.1.2012的滑块,只需创建一个最小值为0,最大值为间隔天数的滑块,然后将所选数字添加到1.1.2012


我假设10.1.2012意味着1月10日,因此滑块的最小值为0,最大值为9。然后相应地设置标签。

我无法想象如何使用一个
JSlider
来实现这一点,因为你会有很多天,对于
Double/RangeSlider
,有一些解决方法,但我认为更好、更简单的方法是使用
SpinnerDateModel
实现,或者,最好的选择是查找自定义Java
日历
日期选择器

编辑(@Robin)


首先回答您的问题:您可以使用
JSlider
,使用开始日期和结束日期之间的天数来确定范围,并使用自定义标签(例如使用该方法)

现在为了方便用户,请避免这样做,因为

  • 没有人熟悉这个概念。现在,每个站点/应用程序都使用一个文本字段,大多数情况下与日历小部件结合使用。这是用户所期望的,而不是滑块
  • 由于宽度有限,很难将所有日期作为标签显示在滑块上。这意味着用户必须插值/计数以选择正确的日期
  • 如果你坚持滑块方法,那么至少要考虑添加一个文本字段。即使是显示当前选定日期的不可编辑文本字段也比滑块有很大的改进(参见第2点)
    所以一旦做出选择,滑块的范围就应该调整,对吗?或者当旋钮位于外部值时,是否应该有某种滚动?实现这一点的一种方法可能不是滑动旋钮,而是滑动滑块,即将最小/最大值调整到选定的日期-/+X,并将旋钮重新定位在中心。滑块应始终显示相同的范围(例如,从2012年1月1日到2012年1月10日),在这个范围内,用户应该可以选择一天。+1对于使用另一个组件的建议,然后是日期选择的
    JSlider
    +1可能是我的失眠,可能是OP的错误描述,我不确定s/he是否指带有两个按钮的JSlider,请参见附件picture@mKorbel一个,两个,三个按钮,没关系。日期选择器如此常见,以至于没有人希望使用滑块来选择日期。我能想象的唯一与时间有关的滑块是电影/音乐播放器,但这些滑块完全是用于其他用途的。在谷歌图片中搜索“日期选择器”和“日期滑块”就证明了我的观点。第一个显示了我可以关联和识别的UI,第二个显示了Web 1.0日之前的UI我实现了RangeSloider,用于从JTable中过滤数据(之前在JComboBox中选择的数据类型/列/波动性),因此舒适且用户友好的方式:-)无休止的用户懒散