0

JSpinnerdd / mm/yyy値を反復処理するために拡張する次のクラスを作成しました。


public class DateSpinner extends JSpinner{

    Calendar calendar = new GregorianCalendar();

    public DateSpinner(){
    super();

    calendar.add(Calendar.DAY_OF_YEAR, 1);
    Date now = calendar.getTime();

    calendar.add(Calendar.DAY_OF_YEAR, -2);
    Date startDate = calendar.getTime();

    calendar.add(Calendar.YEAR, 100);
    Date endDate = calendar.getTime();

    SpinnerDateModel dateModel = new SpinnerDateModel
        ( now , startDate , endDate , Calendar.DAY_OF_MONTH );

    setModel(dateModel);

    JFormattedTextField tf =
        ((JSpinner.DefaultEditor)getEditor()).getTextField();
    DefaultFormatterFactory factory =
        (DefaultFormatterFactory)tf.getFormatterFactory();
    DateFormatter formatter = (DateFormatter)factory.getDefaultFormatter();

    // Change the date format to only show the hours
    formatter.setFormat(new SimpleDateFormat("dd/MM/yyyy"));
    }




}

私の問題は、を使用してその値を設定するときです

    Date today = new Date();
    spinner.setValue(today);

時刻と曜日を含む日付を取得します。スピナーに触れると、設定したフォーマットに従ってフォーマットされます。表示したいフォーマットを最初に取得するにはどうすればよいですか?

4

2 に答える 2

2

次のような組み込みのエディタを使用します

spinner.setEditor(new JSpinner.DateEditor(spinner, "dd/MM/yyyy"));
于 2009-06-14T16:06:02.440 に答える
1

また、補足として、カレンダー、日付、時刻を扱うときはいつでも、 Joda Timeの使用を検討します。

于 2009-06-14T16:20:48.223 に答える