小编典典

焦点改变后自动计算年龄

java

从日期选择器中选择日期之后,以及当焦点从日期选择器更改为年龄文本文件时,可以自动计算年龄吗?

样品表在这里


阅读 213

收藏
2020-09-28

共1个答案

小编典典

FocusListener例如,A 会有所帮助…

    JXDatePicker dp = new JXDatePicker();
    dp.getEditor().addFocusListener(new FocusAdapter() {
        @Override
        public void focusLost(FocusEvent e) {
            // Calculate age
            Date date = dp.getDate();
        }
    });

有关更多详细信息,请参见如何编写焦点侦听器

最好使用JodaTime或Java 8的新Time API完成年龄计算

Java 8

Date date = // Date from date picker
LocalDate ld = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

//LocalDate ld = LocalDate.of(1972, Month.MARCH, 8);
Period p = Period.between(ld, LocalDate.now());
System.out.println(p.getYears());
System.out.println(p.getMonths());
System.out.println(p.getDays());

输出类似…

42
11
18

乔达时代

Date date = // Date from date picker
LocalDate ld = LocalDate.fromDateFields(date);

Period p = Period.fieldDifference(ld, LocalDate.now());
System.out.println(p.getYears());
System.out.println(p.getMonths());
System.out.println(p.getDays());
2020-09-28