Swing的日期选择控件DatePicker

依赖的包

下载DatePicker.jar

图片示例

swing的日期控件DatePicker

示例代码段

        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()可以修改日期控件的日期

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值