焦点变化后自动计算年龄 [英] Automatically calculate age after focus change
本文介绍了焦点变化后自动计算年龄的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
你可以帮我解决一下如何在从datepicker中选择日期后自动计算年龄,以及何时将焦点从datepicker更改为年龄计算的年龄textfiel?
Can you please help me on how to Automatically calculate age after selecting date from datepicker and when focus is changed from datepicker to age textfiel the age calculates?
推荐答案
A FocusListener
将有所帮助,例如......
A FocusListener
will help, for example...
JXDatePicker dp = new JXDatePicker();
dp.getEditor().addFocusListener(new FocusAdapter() {
@Override
public void focusLost(FocusEvent e) {
// Calculate age
Date date = dp.getDate();
}
});
参见如何编写焦点监听器以获取更多详细信息
See How to Write a Focus Listener for more details
年龄计算最好使用JodaTime或Java 8的新时间API
The age calculation is best done using either JodaTime or Java 8's new 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());
输出类似......
Which outputs something like...
42
11
18
Joda-Time
Joda-Time
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());
这篇关于焦点变化后自动计算年龄的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文