Question

J'ai créé la classe suivante qui s'étend JSpinner itérer sur jj / mm / valeurs 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"));
    }




}

Mon problème est quand je mis sa valeur à l'aide

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

Je reçois la date, y compris l'heure et le jour de la semaine. Si je touche la fileuse il formate selon le format que je mets. Comment puis-je obtenir d'abord le format que je veux qu'on?

Était-ce utile?

La solution

L'utilisation intégrée des éditeurs, comme suit

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

Autres conseils

En outre, comme une note de côté - chaque fois que vous travaillez avec des calendriers, des dates et des heures j'envisager d'utiliser Joda Temps .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top