Pregunta

He creado la siguiente clase que se extiende JSpinner para iterar sobre dd / mm / valores 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"));
    }




}

Mi problema es cuando establezca su valor mediante

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

Me da la fecha como la hora y el día de la semana. Si toco la ruleta da formato de acuerdo al formato puse. ¿Cómo puedo obtener el formato inicialmente Quiero ser mostrado?

¿Fue útil?

Solución

Uso redactores incorporados, tales como seguir

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

Otros consejos

Además, como nota al margen - siempre que trabaje con calendarios, fechas y horas me gustaría considerar el uso de Joda Time .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top