从日期选择器中选择日期之后,以及当焦点从日期选择器更改为年龄文本文件时,可以自动计算年龄吗?
样品表在这里
FocusListener例如,A 会有所帮助…
FocusListener
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完成年龄计算
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());