2012-01-10 9 views
2

JSliderを使用して日付選択機能を実装したいと思います。ユーザはスライダを使用して、以前に知られた2つの日付の中から自由に選択することができます。私はこの1つのような例を見てきました:JSliderを使用して日付選択機能を作成しますか?

enter image description here

しかし、私は唯一つのスライダを使用して、同じことをやってみたいです。 2点間の最短距離(ティック)は1日でなければなりません。どのようにそれを実装するためのヒント?

+0

選択が完了したらスライダーの範囲を調整する必要があります。または、ノブが外側の値に置かれているときにスクロールする必要がありますか?これを実現する1つの方法は、ノブをスライドさせるのではなく、スライダをスライドさせること、すなわち、選択された日にミニ/マックスを調整することである。 -/+ Xとノブを中心に戻す。 – Thomas

+0

スライダには常に同じ範囲(たとえば1.1.2012から10.1.2012まで)が表示され、この範囲では1日を選択できるようになります。 –

答えて

3

最小= 1.1.2012、最大= 10.1.2012のスライダを作成する場合は、最小= 0、最大=日数のスライダを作成し、選択した数値を1.1.2012に追加します。

10.1.2012は1月10日を意味すると仮定しているため、スライダにはmin = 0とmax = 9が設定されます。それに応じてラベルを設定します。私は画像を1 JSliderでそれを行うことはできませんどのように

3

、そこにあなたが日の束を持っていると思いますので、そこDouble/RangeSliderためのいくつかの回避策がありますが、私はより良いと思うし、最も簡単に実装SpinnerDateModelJSpinner、または最高のだろうあなただけを使用することができます。オプションは、カスタムJava CalendarまたはDatePicker

EDIT(@Robin)

enter image description here

+1

他のコンポーネントを使用することの提案+1のためにJSliderを選択してください。 – Robin

2

まずあなたの質問に答えるために探していますは、範囲を決定するためにあなたの開始日と終了日の間の日数を使用し、使いやすさのために今

(例えばsetLabelTableメソッドを使用して)カスタムラベルを使用し、

  1. ので、これを避けます誰もこの概念に精通していません。現在、すべてのサイト/アプリケーションでは、ほとんどの場合、カレンダーウィジェットと組み合わせてテキストフィールドが使用されます。これはスライダではなくユーザが期待するものです
  2. 幅が限られているため、すべての日付をスライダ上のラベルとして取得することは困難です。これは、ユーザが正しい日付を選択するために補間/カウントしなければならないことを意味します。
  3. スライダ手法を採用する場合は、少なくともテキストフィールドも追加することを検討してください。現在選択されている日付を示す編集不可能なテキストフィールドでも、スライダー(点2を参照)よりも大幅に改善されます。(ポイント2を参照)
+0

+1 OPでの間違った説明、多分私の不眠症、JSliderの2つのボタンを意味するかどうかわからない、attn画像を参照してください – mKorbel

+0

@mKorbel 1つ、2つ、3つのボタン、それは問題ではありません。日付ピッカーはあまり一般的ではないため、誰も日付選択のためのスライダーを期待していません。私が時間に関連して想像することができる唯一のスライダーは映画/音楽プレーヤーにありますが、それは他のすべての目的のためのスライダーです。 Googleの画像で '日付ピッカー'と '日付スライダー'を検索すると、私の主張が証明されます。最初は私が関連して認識できるUIを示し、2番目のページはWeb 1より前のUIを示しています。0 days – Robin

+0

JTableからデータ(データ型/列/ボラティリティをJComboBoxで前回選択したもの)をフィルタリングするためにRangeSliderを実装しました。とても快適でuser_friendlyな方法で:-)エンドユーザーlazyzyness – mKorbel

関連する問題