这样做简化了应用逻辑,因为使用者不会访问到一个无效的日期。并且由于对话框看上去像一个日历,这样做更有利于使用者掌握星期几这个非常有用的日期信息。
自定义的按键控制在名为DateButton的类 (列表A)中描述。使用起来非常简明—仅仅是列举一个名为DateButton的实体,并且像加载普通的控制一样把它加到一个方框中。
按键就是表示的日期的实体,执行起来就像键入“date”命令的反映一样。这就意外着只要名为PropertyChangeListener的时间寄存器发生变化你就可以设置并得到时间。表格 A说明了名为 DateButton 的应用编程接口,并且 列表B是一个使用的例子。
表格 A
自定义的按键应用编程接口是十分简单的。你可以利用其中的一个构造器来建立一个例子,并且正确地获取或设置时间信息。需要注意的是这是一个标准的按键,也因此它继承了很多标准按键的方式,包括注册的方式。方法描述DateButton(Date)建立一个新的名为DateButton的类,用来初始化日期。DateButton( )建立一个新的名为DateButton的类,用来初始化系统日期。getDate( )得到正确的日期值。setDate(Date)设置正确的日期值。
自定义按键控制的应用编程接口
日历对话框
除了自定义一个名为DateButton的控制器之外,我们还要建立一个自定义的对话框,名为CalendarChooser (参照 列表 C), 你可以自由地从列表中选择月份,年份或日子 (参照表格B)。尽管它是根据名为Datebutton控制自动显示的,你也可以用你自己的方法来使用它。建立一个名为 CalendarChooser的类,使用一个选好的方式来运行它(参照表格B完成应用编程接口)。
表格 B
使用日历对话框选择一个日期是非常简单的。使用一个构件器来建造一个对话框的实体,使用其中的一种方法来选择日期。方法描述DateChooser(Dialog, title)建立一个新的名为DateChooser的类,并且赋予其标题和对话信息。DateChooser(Dialog)建立一个新的名为DateChooser的类,并且赋予其对话信息。DateChooser(Frame, title)建立一个新的名为DateChooser的类,并且赋予其框架和对话信息。DateChooser(Frame)建立一个新的名为DateChooser的类,并且赋予其框架。select(Date)显示一个已选好日期的对话框,你可以任意改变日期;返回选择好的日期。如果你取消对话框则返回一个空值,并关闭对话框。select( )与上述相同,用系统日期代替选择的日期。
日历对话框应用编程接口
这个名为DateChooser的类,有些复杂。我不得不对每个月的日历建立一个新的控制器,因为这些标准控制里面没有我需要的。另一方面讲,这也说明了敬爱能力一个新的控制是多么地容易,靠鼠标和键盘地互动就能完成。
注意到在年份选择列表中年份的显示,是由名为FIRST_YEAR和 LAST_YEAR的常数预先决定的。同样地,其它常数也决定一些对话框视觉方面(如颜色)的效果。稍加设计,自由地修改这些参数并不困难。
同样地,非常重要的一点,名为DateChooser的类和名为DateButton的类都是以英式(月份和星期几)或美式日期格式定义的。由于这些也是用常数来定义的,所以修改起来也十分简单。如果你想修改的话,这也是完全和语言无关的。