سؤال

لقد قمت بإنشاء الفصل التالي الذي يمتد JSpinner للتكرار على قيم DD / 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);

أحصل على التاريخ بما في ذلك الوقت واليوم من الأسبوع. إذا لمست Spinner، فإنه تنسيقه وفقا للتنسيق الذي قمت بتعيينه. كيف يمكنني في البداية الحصول على الشكل الذي أريد إظهاره؟

هل كانت مفيدة؟

المحلول

استخدم المحررين المدمجين، مثل التالية

spinner.setEditor(new JSpinner.DateEditor(spinner, "dd/MM/yyyy"));

نصائح أخرى

أيضا، كملاحظة جانبية - كلما تعمل مع التقويمات والتواريخ والأوقات التي سأفكر فيها باستخدام جودا الوقت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top