依赖的包
图片示例
示例代码段
JLabel dateJLabel = new JLabel("日期:");
final DatePicker datePicker1 = DatePickerUtil.getDatePicker();
JButton startDateBtn = new JButton("开始时间");
startDateBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(jFrame, "获取控件中的日期:" + datePicker1.getValue());
}
});
JLabel dxJLabel = new JLabel("-");
final DatePicker datePicker2 = DatePickerUtil.getDatePicker();
JButton endDateBtn = new JButton("结束时间");
endDateBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(jFrame, "获取控件中的日期:" + datePicker2.getValue());
}
});
JButton dateQueryBtn = new JButton("查询");
dateQueryBtn.setName("dateQueryBtn");
dateQueryBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
System.out.println("开始时间:" + datePicker1.getValue());
System.out.println("结束时间:" + datePicker2.getValue());
}
});
JPanel toolPanel = new JPanel();
toolPanel.add(dateJLabel);
toolPanel.add(startDateBtn);
toolPanel.add(dxJLabel);
toolPanel.add(endDateBtn);
toolPanel.add(dateQueryBtn);
jFrame.add(toolPanel);
public class DatePickerUtil {
// 获取日期控件
public static DatePicker getDatePicker() {
// 显示格式
String DefaultFormat = "yyyy-MM-dd";
// 当前时间
Date date = new Date();
// 设置字体
Font font = new Font("Times New Roman", Font.BOLD, 14);
Dimension dimension = new Dimension(177, 24);
// 高亮显示的日期
int[] hilightDays = { 1, 3, 5, 7 };
// 灰色显示的日期
int[] disabledDays = { 4, 6, 5, 9 };
//构造方法(初始时间,时间显示格式,字体,控件大小)
DatePicker datepick = new DatePicker(date, DefaultFormat, font, dimension);
//设置起始位置
datepick.setLocation(137, 83);
// 设置一个月份中需要高亮显示的日子
datepick.setHightlightdays(hilightDays, Color.red);
// 设置一个月份中不需要的日子,呈灰色显示
datepick.setDisableddays(disabledDays);
// 设置国家
datepick.setLocale(Locale.CANADA);
// 设置时钟面板可见
datepick.setTimePanleVisible(true);
return datepick;
}
}
设置日期控件的值
看到有些人问怎么给日期控件设置日期,这个功能我的工具中没有用到,今天刚好有空就研究一下,发现DatePicker中只有getValue方法,没有setValue方法,但是有一个getInnerTextField方法,返回JFormattedTextField对象,盲猜这个对象就是日期控件的文本输入框,巧合的是它就一个setValue方法,猜测这个setValue就是给日期控件设置日期值的方法。接下来要做的就是验证。
验证代码
SimpleDateFormat sdFormat=new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = sdFormat.parse("2020-10-10");
} catch (ParseException e) {
e.printStackTrace();
}
datepick.getInnerTextField().setValue(date);
结论
DatePicker.getInnerTextField().setValue()可以修改日期控件的日期