使用JSlider创建日期选择器?

时间:2012-01-10 16:32:56

标签: java swing datepicker jslider

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

enter image description here

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

3 个答案:

答案 0 :(得分:3)

如果你想要一个min = 1.1.2012和max = 10.1.2012的滑块,只需创建一个滑块,其中min = 0和max =介于两者之间的天数,然后将所选数字添加到1.1.2012。 / p>

我假设10.1.2012表示1月10日,因此您的滑块将具有min = 0和max = 9.然后相应地设置标签。

答案 1 :(得分:3)

我无法用一个JSlider来描述如何做到这一点,因为你有很多天,Double/RangeSlider有一些解决方法,但我认为更好更容易使用SpinnerDateModel实现JSpinner,或者最佳选项是查找自定义Java CalendarDatePicker

编辑(@Robin)

enter image description here

答案 2 :(得分:2)

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

现在为了用户友好,请避免这个

  1. 没有人熟悉这个概念。现在,每个站点/应用程序都使用文本字段,大部分时间都与日历窗口小部件结合使用。这是用户期望的,而不是滑块
  2. 由于宽度有限,很难将所有日期作为标签放在滑块上。这意味着用户必须插入/计数以选择正确的日期
  3. 如果您坚持使用滑块方法,至少还要考虑添加文本字段。即使是显示当前所选日期的不可编辑文本字段也会比滑块有很大改进(参见第2点)