2015-01-27 2 views
1

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

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())); 
+0

Возможно, вам понравилось читать [Кодовые обозначения для языка программирования Java TM] (http://www.oracle.com/technetwork/java/codeconvtoc-136057.html) , это облегчит людям читать ваш код, а вам читать другие – MadProgrammer

ответ

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

Герой? Хм, я должен делать что-то не так;) Рад помочь!) – MadProgrammer

Смежные вопросы