日期是最基本的数据形式之一,因此很多语言或者数据库都提供了对日期的支持,或内置或提供这一类的库。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也不难完成。不过,日期在应用中是如此的常见,以至于我们常常一遍一遍地写相同的代码,输入,分析,检查时间。

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

当你点击之后,会弹出一个日期对话框,并允许你选择一个新的日期 。

点击OK键完成一次更新。

日历对话框弹出

这样做简化了应用逻辑,因为使用者不会访问到一个无效的日期。

并且由于对话框看上去像一个日历,这样做更有利于使用者掌握星期几这个非常有用的日期信息。

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

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

表格 A

自定义的按键应用编程接口是十分简单的。你可以利用其中的一个构造器来建立一个例子,并且正确地获取或设置时间信息。需要注意的是这是一个标准的按键,也因此它继承了很多标准按键的方式,包括注册的方式。方法。

全部

java用swing日历标记节日_如何用JavaSwing作一个日历控制程序?相关推荐

  1. java 显示日历 swing_用Java Swing作一个日历控制程序

    日期是最基本的数据形式之一,因此很多语言或者数据库都提供了对日期的支持,或内置或提供这一类的库.Java也不例外:Java的应用编程接口提供了以跨平台立独语言的方式描述,计算,对比,显示以及便携式分析 ...

  2. 可编辑的日历控件_选择正确的WordPress编辑日历插件

    可编辑的日历控件 什么是编辑日历? (What is an Editorial Calendar?) An editorial calendar is the foundation of strate ...

  3. php如何生成一年的日历表_使用php动态生成一个日历,附源码。【简单实用】

    日历在web开发中是非常常用的一个功能,网上搜也能找到一大堆日历组件,大部分是js组件. 因为再开发过程中需要使用到日历的功能,又不想下载什么日历组件.所以就自己动手写了一个简单的php生成日历的功能 ...

  4. python解析器是什么_如何用python写一个简单的词法分析器

    编译原理老师要求写一个java的词法分析器,想了想决定用python写一个. 目标 能识别出变量,数字,运算符,界符和关键字,用excel表打印出来. 有了目标,想想要怎么实现词法分析器. 1.先进行 ...

  5. python写词法分析器_如何用python写一个简单的词法分析器

    编译原理老师要求写一个java的词法分析器,想了想决定用python写一个. 目标 能识别出变量,数字,运算符,界符和关键字,用excel表打印出来. 有了目标,想想要怎么实现词法分析器. 1.先进行 ...

  6. python可视化迷宫求解_如何用 Python 制作一个迷宫游戏

    相信大家都玩过迷宫的游戏,对于简单的迷宫,我们可以一眼就看出通路,但是对于复杂的迷宫,可能要仔细寻找好久,甚至耗费数天,然后可能还要分别从入口和出口两头寻找才能找的到通路,甚至也可能找不到通路. 虽然 ...

  7. linux怎么日历写入文件夹,用c写的一个日历文件

    c写的一个日历文件: /* 该程序在vc中调试运行通过. */ #include #include #include #include typedef struct { unsigned char d ...

  8. python 题库自动答题,自动匹配题库_如何用python写一个从题库自动匹配的答题脚本_淘题吧...

    A. web数据库题目:根据用户输入的用户名和密码于数据库中的记录是否匹配制作一个用户登录模块 http://blog.csdn.net/love_leve/article/details/43226 ...

  9. java用swing日历标记节日,java基于swing实现日历

    labels[i].setText(" "); } addCalendar();//调用改变标签内容的方法 } }; jb.addMouseListener(l); this.se ...

最新文章

  1. 互联网大厂月饼哪家强?我看了之后,口水流了一地!
  2. 千兆路由器怎么设置网速最快_200M的网速,换成千兆路由器,我得到了什么?...
  3. C++ unique and erase问题处理
  4. XML 语法速查笔记
  5. pcl之解决No CMAKE_CUDA_COMPILER could be found.
  6. 直播视频网站源码,登录界面LoginActivity
  7. VMware安装Windows Server 2003提示Operating System not found
  8. SCI期刊分区介绍 / 中国科学技术信息研究所SCI(E)论文期刊分区列表——2017年-2020年-文件分享
  9. Labview之RS485通信
  10. PhpStudy BackDoor 2019漏洞
  11. ElasticSearch集群状态异常(Red、Yellow)原因分析
  12. 【Socket】苍老师有了丈夫,我也有了SAEA
  13. Ramnit 蠕虫分析
  14. 年后跳槽如何准备?(转)
  15. Ninja is required to load C++ extensions in Pycharm
  16. AST反混淆插件|如何还原Array对象里的元素
  17. git的origin/master和origin master
  18. QQ聊天记录备份BAK文件的修复方法
  19. 2018-2019-2 20165330《网络对抗技术》Exp4 恶意代码分析
  20. [kuangbin带你飞]专题四 做题顺序与题解 【最短路练习】

热门文章

  1. “明年AI会如何?”英伟达问了13位不同行业的专家
  2. 一文解读聚类中的两种流行算法
  3. 旷视Face++回清华求教AI本质创新,姚期智授2锦囊,出任首席顾问
  4. dubbo-monitor-simple-2.5.3-assembly 简易监控中心安装
  5. YUV格式文件转RGB格式
  6. 大道至简第七章读后感
  7. spring MVC interceptor post遇到问题
  8. 黯然推荐:王江民先生悼文(文言)
  9. MYSQL ERROR 1045 错误的解决办法 (转)
  10. Bazel C++ 基础[翻译]