Как получить дату от моего JSpinner?

1

это код Spinner

Hini = new javax.swing.JSpinner();
Date date = new Date();
SpinnerDateModel sm = new SpinnerDateModel(date, null, null, Calendar.MINUTE);
JSpinner Hini = new JSpinner(sm);
JSpinner.DateEditor de = new JSpinner.DateEditor(Hini, "hh:mm a");
de.getTextField().setEditable( true );
Hini.setEditor(de);

И именно так я хочу, чтобы он получал значения, но всегда показывает "00:00",

    'SimpleDateFormat formater = new SimpleDateFormat("HH/mm");
     String spinnerValue = formater.format(Hini.getValue());
     System.out.println(spinnerValue);'

Я также пробовал это, но он всегда показывал фактическое время, а не тот, который я выбрал

Hini = new JSpinner(sm);
de = new JSpinner.DateEditor(Hini, "hh:mm a");
de.getTextField().setEditable( false );
Hini.setEditor(de);
System.out.println("Spinner:      "+de.getFormat().format(Hini.getValue()));
Теги:
date
swing
jspinner

1 ответ

2
Лучший ответ

Кажется, вы создаете два экземпляра JSpinner

// Instance(?) field here...
Hini = new javax.swing.JSpinner();
Date date = new Date();
SpinnerDateModel sm = new SpinnerDateModel(date, null, null, Calendar.MINUTE);
// Local field here
JSpinner Hini = new JSpinner(sm);
JSpinner.DateEditor de = new JSpinner.DateEditor(Hini, "hh:mm a");
de.getTextField().setEditable( true );
Hini.setEditor(de);

Поэтому я могу только догадываться, что локальное поле - это то, что добавляется в пользовательский интерфейс, и поле экземпляра игнорируется, что означает, что независимо от того, что пользователь вводит в поле, не задано в поле экземпляра.

Отбросьте создание второго поля и замените его на Hini.setModel(sm);

Вместо форматирования значения непосредственно из JSpinner вы должны просто получить ссылку на значение Date и только формат, когда вам действительно нужно. Это дает вам более гибкое решение

  • 0
    большое спасибо! это сработало, я не осознавал, что создавал два экземпляра, ты мой герой
  • 0
    Hero? Хм, должно быть, я что-то делаю не так;) Рад, что помог;)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню