用Java Swing作一个日历控制程序-Java基础-Java-编程开发

Java swing入门布局与日历 ** Java swing入门布局与日历 **这次实验主要是学习使用布局类包括BorderLayout和gridLayout。 关于这两个布局我不再复述,网上说得都挺详细的。看看文档就好了: [https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/BorderLayout.html]`` 先让我们来看一下效果: 点击上个月下个月能够成功的跳转。 现在来看看代码:博主用的是JDK11。 这个小项目分为两部分,一部分就 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

日期是最基本的数据形式之一,因此很多语言或者数据库都提供了对日期的支持,或内置或提供这一类的库。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

自定义日期控制

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

点击OK键完成一次更新。

图 B

  日历对话框弹出

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

   自定义的按键控制在名为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的类都是以英式(月份和星期几)或美式日期格式定义的。由于这些也是用常数来定义的,所以修改起来也十分简单。如果你想修改的话,这也是完全和语言无关的。

java与Swing库实现的日历日记系统 由java及其swing库实现的简单日历日记系统 阅读详情

相关推荐

Java日历小程序开发指南:AWT与SWING的应用

AWT (Abstract Window Toolkit) 是Java的一个基础图形用户界面工具包,提供了创建图形用户界面的类和方法。在Java早期版本中,AWT是唯一的GUI开发框架,它使用本地系统组件来绘制图形界面,因此也继承了各平台特定的界面风格。表 2.1 - AWT 基本组件组件描述Frame创建窗口Button创建按钮TextField创建文本输入框Label创建文本标签Checkbox创建复选框Choice创建下拉列表。

weixin_35753291的博客 1040

Java Swing –日期选择器对话框

房子里有Swing开发人员吗? 对于使用Swing的用户来说,这是一个GUI组件,可能会对您的UI编码工作有所帮助。 我们的JCG合作伙伴之一提供了日期选择器小部件。 一探究竟: Java Swing –日期选择器对话框以选择日期 翻译自: https://www.javacodegeeks.com/2011/01/java-swing-date-picker-dialog.htm...

最佳 Java 编程 1062

在Java Swing中集成自定义日历组件

Swing是Java的一部分,提供了一整套用于构建图形用户界面的组件。这些组件在功能上非常丰富,它们能够响应用户的操作,并且支持高度定制化。日历组件作为时间管理类软件的基础,对于许多应用场景来说是必不可少的。它可以帮助用户跟踪事件、设定提醒以及更好地管理时间。日历组件主要由以下几个核心类和接口组成::这是日历组件的主要视图类,负责展示日历界面。DateRange:一个实用类,用于表示日期范围。:一个接口,用于处理日期选择事件。:日历组件的模型类,用于管理日期数据。

weixin_31597759的博客 910

JAVA Swing Datepicker(日历控件)

此日历控件在www.eltima.com上给的Swing library4.0的jar包里提出出来 并重新封装在DatePicker类中 将必要的函数由私有状态提升为公开状态或将混淆过的代码重新命名. 下在地址:http://download.csdn.net/source/1023826 源于同一demo的 sidebar的一个提取见另一篇博文: http://bl...

深度剖析 AI 革命,直击技术本质与商业底层逻辑。 致力于将复杂前沿的 AI 技术转化为通俗易懂的科普,及切实可行的企业生产力方案。 专注:企业 AI 智能体(Agent)设计、自动化业务工作流重构。 3万+

java swing 时间日期选择控件

使用纯java swing 编写的日期时间选择控件,免去了以前的手动输入造成的输入错误,输入丢失的不必要的错误

Java 日历系统

自己编写的日历系统,可以获取当前时间,第一次编写,希望大家喜欢。

Swing日期组件

swing写的一个日期组件(完整组件,可以直接创建) package com.quaero.newDrc.component; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dialog; import java.awt.Dimension; import java.awt.FlowLayout; i...

jungle1992的博客 2047

简单日历系统

1. 用 Java 实现一个带有 GUI 界面的日历系统,能够正确地显示年、月、日和星 2. 主界面需要显示整个月的每一天,并且需要能够切换不同的年、月、日。 3. 能够将当前日期进行高亮显示 4. 添加一个搜索框,输入一个日期后点击搜索能够跳到指定

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

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

weixin_33377571的博客 737

java日历系统(阴阳日历)

用java 编写的日历系统 具有阳历和阴历 并有 24节气提醒 功能比较完善! 能够完成日历的所有功能。 谢谢大家鉴赏代码 提出意见。

Java实现简单日历小程序 Java图形界面小日历开发

主要介绍了Java实现简单日历小程序,如何用Java swing开发一款简单的小日历,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

java 实现日历

题目:java 日历 时间:2019.3.8 介绍:做一个窗体显示日历,最上边是两个按钮切换上下月,中间是日期展示,最下方显示当前的年月。 注:所有代码在Eclipse下调试运行。 代码: 窗体布局: Frame.java package calendar; import java.awt.BorderLayout; import java.awt.GridLayout; impor...

yandaxiaxiaolin的博客 1万+

【吐血整理-历时两个月,长达万字】FDTD Solutions学习笔记

原教学视频来自于Ansys-Lumerical官方的FDTD100,所看视频来自B站大佬UP主 【Nestor_呐等】 的幸苦翻译,本文内容粘贴自我个人在学习FDTD100时,通过字幕和一些个人理解总结的一份word。整理不易,强烈建议收藏!...

weixin_45719141的博客 10万+

Java Swing 日历控件

本想在网上找一个简单的Java 日历控件,但是找了很久要不是就很花哨,要不是就写的很复杂。下午加晚上花了几个小时的时间,写了个简易的日历控件。现在放上来,以备不时之需。package date;import java.awt.BorderLayout;import java.awt.Container;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.

zxcvbnmluton的专栏 1万+

Delta并联机械手-Codesys实现以及正解逆解研究

由于Codesys的Robotics模块有Delta并联机械手的运动模型,因此借助Codesys的机械手运动模型,研究自己的正解逆解算法。

weixin_42386991的博客 5561

别再到处找包了!Keil5芯片支持包(Pack)最全管理指南:安装、更新、迁移与离线备份

本文详细解析了Keil5芯片支持包(Pack)的全生命周期管理,包括安装、更新、迁移与离线备份的工程化解决方案。针对STM32F10x等常见芯片,提供了高效获取Pack的策略、版本管理技巧及团队协作方案,帮助开发者解决常见的'Device Family Pack missing'等问题,提升嵌入式开发效率。

weixin_28729205的博客 539

java Swing 日历组件

调用方法 textField_2 = new JTextField(); textField_2.setBounds(299, 84, 78, 21); contentPane.add(textField_2); textField_2.setColumns(10); //调用日历方法 final CalendarPanel p = new CalendarPanel(textField_2, "yyyy/MM/dd"); final JLabel lblNewLab.

qq_42306844的博客 1884

LAMMPS实战指南 - 从in文件到分子动力学模拟的完整流程解析

本文详细解析了LAMMPS分子动力学模拟的完整流程,从理解in文件的核心作用与基础结构开始,逐步指导如何创建模拟体系、选择势函数、进行能量最小化与初始化,并深入讲解了NVT/NPT系综弛豫与生产模拟的关键步骤。文章还提供了常见问题的避坑指南与实战技巧,帮助初学者快速掌握从编写in文件到成功运行模拟的全过程。

weixin_28365523的博客 394

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

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

weixin_39877898的博客 197

【QGIS】利用“创建网格”功能实现区域等距分割与坐标转换实战

本文详细介绍了如何在QGIS中使用“创建网格”工具实现区域等距分割。通过实战演示,将北京市行政区划切割为150米正方形网格,并重点讲解了关键步骤:选择投影坐标系EPSG:3857以确保网格尺寸精确,以及将结果转换为常用的WGS84经纬度坐标。文章还涵盖了进阶技巧与常见问题解决方案,帮助用户高效完成空间网格化分析任务。

weixin_29232507的博客 95

【LLC快速上手系列】LLC轻载时,死区时间怎么调才对?别再傻傻乱搞了!

死区时间,就是指。如果你死区设得好,就能让开通前 ( V_DS to 0 ),完美实现!

weixin_43199439的博客 1855

Java GUI:使用 Java Swing 编写的日历小程序

这是一个完全使用 Java Swing 编写的日历类,同时使用了 Java 的 Calendar 类和 Java AWT 中的触发事件。 话不多说,直接上结果。 运行结果截图如下: 它支持显示当前日期,并使用红色高亮标注。 支持上下月翻页,支持查询指定年月的日历,支持一键返回当前日期。 项目源码地址:https://github.com/CoderGeshu/Java-Swing-Calendar。 这里也贴一下源码: 1、首先是一个设置背景透明的工具类,Background.java: packa.

编程技术分享 3086

如何通过conda安装HyPhy教程

本文介绍了在Ubuntu系统上通过conda安装分子进化分析工具HyPhy的详细步骤。首先创建conda环境并指定Python 3.8版本,然后通过bioconda通道安装HyPhy软件包。安装完成后可通过conda list命令验证安装。文中还特别指出可能遇到的libcrypto.so.1.1共享库缺失错误,并提供了解决方案的参考链接。该教程配有安装过程截图,帮助用户直观了解操作流程和验证安装结果。

猿小白的博客 8259

java gui 日历_Java实现简单日历小程序 Java图形界面小日历开发

今天给大家介绍一下如何用Java swing开发一款简单的小日历,下面我们来看代码:首先创建一个CalendarBean类,用于基本的日期计算:package other1;import java.util.Calendar;public class CalendarBean{String day[];int year=2005,month=0;public void setYear(int ye...

weixin_32770423的博客 1767

081、空间降噪(Spatial Denoise)实战:双边滤波、非局部均值与BM3D在ISP中的调优

调参时,别只看PSNR/SSIM。找几个典型场景(夜景、人像、文字、天空),在真实设备上肉眼对比。我见过PSNR涨了2dB但图像看起来更差的案例——因为PSNR不惩罚纹理丢失。空间降噪这块,理论说再多,不如动手调一次。下次遇到噪点问题,先别急着上BM3D,试试双边滤波的自适应参数,说不定有惊喜。

zzfmlxs的博客 43

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

自定义java Swing日历选择组件JCalendarChooser

package cn.net.iem.view.mainframe; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; import java

B_H_L的专栏 7487

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: Struts Spring Hibernate快速入门-Java基础-Java-编程开发
下一篇: 在Eclipse中利用XMLBuddy开发XML-Java基础-Java-编程开发
java169
博客等级 码龄18年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值