2

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

在此处输入图像描述

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

4

3 回答 3

3

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

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

于 2012-01-10T16:41:52.240 回答
3

我无法想象如何用一个来做到这一点JSlider,因为你会有很多天,有一些解决方法Double/RangeSlider,但我认为更好和最简单的方法是实现JSpinnerSpinnerDateModel或者最好的选择是寻找自定义 JavaCalendarDatePicker

编辑(@Robin)

在此处输入图像描述

于 2012-01-10T16:43:26.137 回答
2

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

现在为了用户友好,避免这种情况,因为

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