我正在尝试在我的swing应用程序中实现jdatapicker来输入开始日期和结束日期以传递给sql查询。问题是如何将此datepicker对象转换为字符串以yyyymmdd格式传递给我的查询。 这是实施。
日期格式化程序
public class DateLabelFormatter extends AbstractFormatter {
private String datePattern = "yyyymmdd";
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 "";
}
}
DatePicker GUI 上课日期{
void GUI() {
final JFrame f1 = new JFrame();
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f1.setSize(300, 300);
Container conn = f1.getContentPane();
conn.setLayout(new FlowLayout());
UtilDateModel model = new UtilDateModel();
//model.setDate(20,04,2014);
// Need this...
Properties p = new Properties();
p.put("text.today", "Today");
p.put("text.month", "Month");
p.put("text.year", "Year");
JDatePanelImpl datePanel = new JDatePanelImpl(model, p);
// Don't know about the formatter, but there it is...
final JDatePickerImpl datePicker = new JDatePickerImpl(datePanel, new DateLabelFormatter());
final JDatePickerImpl datePicker2=new JDatePickerImpl(datePanel, new DateLabelFormatter());
final JTextField txt1=new JTextField();
JButton button=new JButton("Click");
button.addActionListener(new ActionListener() {
JLabel label1=new JLabel();
@Override
public void actionPerformed(ActionEvent e) {
txt1.setText("Testing");
f1.add(label1);
// TODO Auto-generated method stub
}
});
JLabel lbl_from=new JLabel("From ");
JLabel lbl_to=new JLabel("To");
f1.add(lbl_from);
f1.add(datePicker);
f1.add(lbl_to);
f1.add(datePicker2);
f1.add(button);
f1.add(txt1);
f1.setVisible(true);
}
}
在main()
中调用 date d1 = new date();
d1.GUI();