焦点变化后自动计算年龄 [英] Automatically calculate age after focus change

查看:170
本文介绍了焦点变化后自动计算年龄的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你可以帮我解决一下如何在从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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆