快速业务通道

用Java Swing作一个日历控制程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22

用Java Swing作一个日历控制程序

时间:2010-12-24

日期是最基本的数据形式之一,因此很多语言或者数据库都提供了对日期的支持,或内置或提供这一类的库。Java也不例外;Java的应用编程接口提供了以跨平台独立语言的方式描述,计算,对比,显示以及便携式分析日期。在这篇文章里,我要讲讲关于Swing的自定义控制,允许你在视觉上获取时间信息而不是用敲命令的方式。用这种方法,你可以避免无效的时间信息,让你的使用者以视觉的方式得到享受。

Java中的日期

Java描述日期和时间的方法使用传统的Date命令或者Java的一些子库。不管它的名字是什么,日期的类并没有普通意义上的日期的概念(日,月,年等等)技术上讲,它仅仅是从1970年1月1日 00:00:00 GMT开始百万分之一秒的累加的一个结果。尽管这些关于日期的类有各种各样的处理日期的方法,这都是不够的。

为了方便的解决日期问题, JDK 1.1 介绍了一个抽象的类java.util.Calendar。具体的计算日期的子类都会根据日历系统使用一个指向特定日期的指针。这是因为日历系统历来就是有很多种方法来计算自己的日期(比如阳历,罗马历,阴历)。

Java应用编程接口提供了名为java.util.GregorianCalendar的类来根据阳历系统处理日期信息。

最终,名为java.text.DateFormat的类就是一种抽象的处理格式解释日期种类的独立于语言之外的方式。这种方式依靠那些惯例,法则,以及已知的语言要求的位置运行着。名为DateFormat的具体的子类进行实际的工作。例如,名为java.text.SimpleDateFormat的子类允许你根据现有的方式分析或者设定一个日期的格式。

总体来说,这三个最基本的类(Date, Calendar, 以及 DateFormat)提供了强大的灵活的处理日期的体系。也许开始看来会有些疑惑,但你一旦明白了,你就会看到这样的结构是十分有意义的,并且在其背后有很强的逻辑背景。(看看JDK的API文档,你就会得到根多的文档和例子)

定做的日期控制

尽管,Java提供了你可以对日期数据操作的方法,如果让你处理三个不同的类,看起来也有些麻烦。有时你需要使用很多方法,利用很多实体来完成一个简单的任务。除那些之外,Swing并不能提供进入日期的组件。当然,如果使用标准的控制如text box也不难完成。不过,日期在应用中是如此的常见,以至于我们常常一遍一遍地写相同的代码,输入,分析,检查时间。

基于以上几点原因考虑,我建立了一个简单的自定义的控制,你可以使用它来访问日期数据。基本上说,这就是一个显示日期的标准的按钮 (请看图A)。

图 A

用Java Swing作一个日历控制程序 - 编程入门网

自定义日期控制

用Java Swing作一个日历控制程序(2)

时间:2010-12-24

当你点击之后,会弹出一个日期对话框,并允许你选择一个新的日期 (请看表格B)。

点击OK键完成一次更新。

图 B

用Java Swing作一个日历控制程序 - 编程入门网

日历对话框弹出

这样做简化了应用逻辑,因为使用者不会访问到一个无效的日期。并且由于对话框看上去像一个日历,这样做更有利于使用者掌握星期几这个非常有用的日期信息。

自定义的按键控制在名为DateButton的类 (列表A)中描述。使用起来非常简明—仅仅是列举一个名为DateButton的实体,并且像加载普通的控制一样把它加到一个方框中。

按键就是表示的日期的实体,执行起来就像键入“date”命令的反映一样。这就意外着只要名为PropertyChangeListener的时间寄存器发生变化你就可以设置并得到时间。表格 A说明了名为 DateButton 的应用编程接口,并且 列表B是一个使用的例子。

表格 A

自定义的按键应用编程接口是十分简单的。你可以利用其中的一个构造器来建立一个例子,并且正确地获取或设置时间信息。需要注意的是这是一个标准的按键,也因此它继承了很多标准按键的方式,包括注册的方式。
方法 描述
DateButton(Date) 建立一个新的名为DateButton的类,用来初始化日期。
DateButton( ) 建立一个新的名为DateButton的类,用来初始化系统日期。
getDate( ) 得到正确的日期值。
setDate(Date) 设置正确的日期值。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号