I got the JDatePicker
working, in my application, but want the date to be formatted as YYYY_MM_DD
Currently the date's format is the default Wed Jul 08 15:17:01 ADT 2015
From this guide there's a class that formats the date as follows.
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 "";
}
}
So I added the class to my package and the Swing application has the proper constructor
JDatePickerImpl datePicker = new JDatePickerImpl(datePanel, new DateLabelFormatter());
So everytime I call datePicker.getModel().getValue().toString()
the formatting is the original.
Now I see the DateLabelFormatter calls valueToString
, but that method doesn't seem available in my application class.
Do I need to extend my application class?
Am I calling the wrong methods to get the information?
They're all in default package [not good?] is that causing problems ?
http://www.codejava.net/java-se/swing/how-to-use-jdatepicker-to-display-calendar-component
Here might be a resource that can help
I believe you might need to call
datePicker.getJFormattedTextField().getText()
You have to call
datePicker.getJFormattedTextField().getText()
to get the displayed value from the datePicker
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With