2015-07-07 2 views
4

Я получила JDatePicker работы, в моем приложении, но хочет дату быть отформатирована как YYYY_MM_DD
В настоящее время формат дата является по умолчанию Wed Jul 08 15:17:01 ADT 2015
Из этого guide есть класс, который форматирует дату следующим образом.дата JDatePicker форматирования

package net.codejava.swing; 

import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Calendar; 

import javax.swing.JFormattedTextField.AbstractFormatter; 

public class DateLabelFormatter extends AbstractFormatter { 

    private String datePattern = "yyyy-MM-dd"; 
    private SimpleDateFormat dateFormatter = new SimpleDateFormat(datePattern); 

    @Override 
    public Object stringToValue(String text) throws ParseException { 
     return dateFormatter.parseObject(text); 
    } 

    @Override 
    public String valueToString(Object value) throws ParseException { 
     if (value != null) { 
      Calendar cal = (Calendar) value; 
      return dateFormatter.format(cal.getTime()); 
     } 

     return ""; 
    } 

} 

Поэтому я добавил класс к моему пакету и приложение Свинг имеет собственный конструктор

JDatePickerImpl datePicker = new JDatePickerImpl(datePanel, new DateLabelFormatter()); 

Так каждый раз, когда я называю datePicker.getModel().getValue().toString() форматирование является оригиналом.
Теперь я вижу вызовы DateLabelFormatter valueToString, но этот метод не представляется доступным в моем классе приложения.
Нужно ли мне расширить класс приложения?
Я вызываю неправильные методы для получения информации?
Они все в пакете по умолчанию [не хорошо?] Является причиной проблем?
полный нуб так что любая помощь приветствуется :)

+1

Почему вы вызываете 'datePicker.getModel(). GetValue(). ToString()'? Это будет вызов 'Date.toString()'. Точка предоставления форматирования меток предназначена для самого выбора даты, чтобы использовать его в текстовом поле ... это значение * display * ... где вы пытаетесь использовать этот код и почему? –

+0

Метод stringToValue() shoudl возвращает календарь, а не дату, см. Мой ответ @ http://stackoverflow.com/questions/35264674/how-to-make-jdatepicker-text-field-formatted-for-input/41287665 # 41287665. –

ответ

3

Вы должны вызвать

datePicker.getJFormattedTextField().getText() 

получить отображаемое значение из Datepicker

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