本文实例讲述了Java实现的日历功能。分享给大家供大家参考,具体如下:

应用名称:Java日历

用到的知识:Java GUI编程,日期操作

开发环境:win8+eclipse+jdk1.8

功能说明:一个很简单的万年历,可以选择年份和月份,也可以用按钮翻页,日历会实时更新日期,最下方会显示当前操作系统的时间。

效果图:

源代码:

CalendarFrame.java

import java.awt.BorderLayout;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.text.SimpleDateFormat;

import java.util.Date;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.border.BevelBorder;

import javax.swing.border.SoftBevelBorder;

public class CalendarFrame extends JFrame implements ActionListener{

/**

* @author Nut

* 2016.01.13

*/

private static final long serialVersionUID = -7260798316896145633L;

JLabel labelDay[] = new JLabel[42];

JButton titleName[] = new JButton[7];

String name[]={"日","一","二","三","四","五","六"};

JButton nextMonth,previousMonth;

JComboBox choiceYear,choiceMonth;

Calendarbean calendar;

JLabel showYear,showMonth;

JLabel showmessage=new JLabel("",JLabel.CENTER);

int year = 2011,month=2;

//构造方法初始化界面

public CalendarFrame(){

JPanel pCenter = new JPanel();

pCenter.setLayout(new GridLayout(7,7));

//星期栏

for(int i=0;i<7;i++){

titleName[i]=new JButton(name[i]);

titleName[i].setBorder(new SoftBevelBorder(BevelBorder.RAISED));

pCenter.add(titleName[i]);

}

//日期栏

for(int i=0;i<42;i++){

labelDay[i]=new JLabel("",JLabel.CENTER);

labelDay[i].setBorder(new SoftBevelBorder(BevelBorder.LOWERED));

pCenter.add(labelDay[i]);

}

//年月选择栏

choiceYear=new JComboBox();

choiceMonth=new JComboBox();

showYear=new JLabel("年");

showMonth=new JLabel("月 ");

for(int i=1990;i<2050;i++)

choiceYear.addItem(i);

choiceYear.addActionListener(this);

for(int i=1;i<=12;i++)

choiceMonth.addItem(i);

choiceMonth.addActionListener(this);

calendar=new Calendarbean();

nextMonth=new JButton("下月");

previousMonth=new JButton("上月");

nextMonth.addActionListener(this);

previousMonth.addActionListener(this);

JPanel pNorth=new JPanel(),

pSouth=new JPanel();

pNorth.add(choiceYear);

pNorth.add(showYear);

pNorth.add(choiceMonth);

pNorth.add(showMonth);

pNorth.add(previousMonth);

pNorth.add (nextMonth);

pSouth.add(showmessage);

add(pCenter,BorderLayout.CENTER);

add(pNorth,BorderLayout.NORTH);

add(pSouth,BorderLayout.SOUTH);

setYearAndMonth(year,month);

setDefaultCloseOperation(DISPOSE_ON_CLOSE);

}

public void setYearAndMonth(int y,int m){

calendar.setYear(y);

calendar.setMonth(m);

String day[]=calendar.getCalendar();

for(int i=0;i<42;i++)

labelDay[i].setText(day[i]);

SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 EEEE");//设置日期格式

showmessage.setText("系统时间:"+df.format(new Date()));

}

//事件动作

public void actionPerformed(ActionEvent e){

if(e.getSource()==nextMonth){

month=month +1;

if(month>12)

month=1;

calendar.setMonth(month);

choiceMonth.setSelectedItem(month);

String day[]=calendar.getCalendar();

for(int i=0;i<42;i++){

labelDay[i].setText(day[i]);

}

}

else if(e.getSource()==previousMonth){

month=month-1;

if(month<1)

month=12;

calendar.setMonth(month);

choiceMonth.setSelectedItem(month);

String day[]=calendar.getCalendar();

for(int i=0;i<42;i++){

labelDay[i].setText(day[i]);

}

}

//选择年份

else if (e.getSource()==choiceYear){

calendar.setYear((Integer) choiceYear.getSelectedItem());

String day[]=calendar.getCalendar();

for(int i=0;i<42;i++){

labelDay[i].setText(day[i]);

}

}

//选择月份

else if (e.getSource()==choiceMonth){

calendar.setMonth((Integer) choiceMonth.getSelectedItem());

String day[]=calendar.getCalendar();

for(int i=0;i<42;i++){

labelDay[i].setText(day[i]);

}

}

// showmessage.setText("日历:"+calendar.getYear()+"年"+calendar.getMonth()+"月");

}

}

Calendarbean.java

import java.util.Calendar;

public class Calendarbean {

String day[];

int year = 2005,month=0;

public void setYear(int year){

this.year=year;

}

public int getYear(){

return year;

}

public void setMonth(int month){

this.month=month;

}

public int getMonth(){

return month;

}

public String[] getCalendar(){

String a[]=new String[42];

Calendar 日历=Calendar.getInstance();

日历.set(year,month-1,1);

int 星期几=日历.get(Calendar.DAY_OF_WEEK)-1;

int day=0;

if (month==1||month==3||month==5||month==7||month==8||month==10||month==12)

day=31;

if(month==4||month==6||month==9||month==11)

day=30;

if(month==2){

if(((year%4==0)&&(year%100!=0))||(year%400==0))

day=29;

else

day=28;

}

for(int i=星期几,n=1;i

a[i]=String.valueOf(n);

n++;

}

return a;

}

}

CalendarMainClass.java

public class CalendarMainClass{

public static void main(String args[])

{

CalendarFrame frame = new CalendarFrame();

frame.setBounds(100,100,360,300);

frame.setTitle("Java日历");

frame.setVisible(true);

frame.setYearAndMonth(1990,1);//设置日历初始值为1990年1月

}

}

PS:这里再为大家推荐几款时间及日期相关工具供大家参考使用:

希望本文所述对大家java程序设计有所帮助。

java 日历_Java实现的日历功能完整示例相关推荐

  1. java中实现工厂日历_Java实现的日历功能完整示例

    本文实例讲述了java实现的日历功能.分享给大家供大家参考,具体如下: 应用名称:Java日历 用到的知识:Java GUI编程,日期操作 开发环境:win8+eclipse+jdk1.8 功能说明: ...

  2. Java借助OpenCV实现人脸识别登录完整示例

    Java借助OpenCV实现人脸识别登录完整示例 OpenCV 效果预览 概述 下载与安装 目录说明 OpenCV的基本使用 项目集成 图片人脸检测 人脸对比相似度 识别视频中的人脸 摄像头识别人脸 ...

  3. php消息功能,PHP实现发送微博消息功能完整示例

    PHP实现发送微博消息功能完整示例,操作技巧,本文,相关内容,感兴趣,数据结构 PHP实现发送微博消息功能完整示例 易采站长站,站长之家为您整理了PHP实现发送微博消息功能完整示例的相关内容. 本文实 ...

  4. java中的日历_Java中的日历功能

    java.util.calendar类提供Java中的日历功能.是一个抽象类,提供在特定时间点和一组日历字段(例如YEAR,MONTH,DAY_OF_MONTH,HOUR等)之间进行转换的方法,以及用 ...

  5. java课程设计日历_java课程设计日历记事本赵锐.doc

    java课程设计日历记事本赵锐.doc 2本科生课程设计课程名称JAVA程序设计课程设计题目日历记事本学号201440930252学生姓名赵锐所在专业2014计算机学院所在班级信工2班成绩课程设计时间 ...

  6. java密码强度_java实现的密码强度检测功能完整示例

    本文实例讲述了java实现的密码强度检测功能.分享给大家供大家参考,具体如下: CheckStrength.java文件: package com.wx.pwd; /** * 检测密码强度 * * @ ...

  7. java语言计算圆周率_Java语言简单计算圆周率完整示例

    本文实例讲述了Java语言简单计算圆周率完整示例.分享给大家供大家参考,具体如下,希望对大家学习Java语言简单计算圆周率有所帮助. 这两天在网上看到一个题,已知Pi可以用函数4 * (1 – 1/3 ...

  8. java entryset()_Java TreeMap entrySet()用法及代码示例

    Java中的java.util.TreeMap.entrySet()方法用于从树图中包含的相同元素中创建一个集合.它本质上返回树图的集合视图,或者我们可以创建一个新集合并将Map元素存储到其中. 用法 ...

  9. java可视化日历_Java简单可视化日历程序

    涉及知识: 一.Date类 在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理.这里简单 ...

最新文章

  1. 2008年4月10日:超负荷的一天
  2. MFC中创建线程实例
  3. Akka(9): 分布式运算:Remoting-远程构建式
  4. 【LeetCode笔记】416. 分割等和子集(Java、动态规划、背包问题、滚动数组)
  5. 新华社专题报道|陕建集团:打造「建筑行业」数字化转型标杆
  6. 用 Gearman 分发 PHP 应用程序的工作负载(转载)
  7. 005木桶缩放(比例非原始)
  8. 高速公路、铁路交通的常识
  9. 5G啊5G,你是不是只比4G多一G?
  10. VisionPro 常用工具介绍
  11. 全国计算机等级考试wps视频,全国计算机等级考试一级WPS-Office
  12. 解决微信设置字体大小对 rem 适配方式的影响
  13. JavaSSM接入支付宝当面付(扫码支付)
  14. python爬虫:利用BeautifulSoup爬取链家深圳二手房首页的详细信息
  15. 字符串String知识总结(上) 冲冲冲!!!
  16. 给在读研究生的一封信
  17. TextSeek使用教程(初级篇) - 文件搜索软件
  18. Java 实现位运算计算加减乘除
  19. 约数的和及约数的个数
  20. 【最小生成树】P2259 Charmer--viv

热门文章

  1. Moto E6 安装Anyview完全手册
  2. 谷歌地图离线地图瓦片下载_如何下载Google地图以供离线使用
  3. 如何隐藏桌面文件夹又可以打开?
  4. Mac使用小技巧,这些技巧你都知道吗?
  5. python自然语言处理工具nltk安装_安装自然语言处理工具Nltk以及初次使用
  6. 使用Redis缓存Shiro授权认证信息,搭建集群权限系统
  7. mac-python3-matplotlib绘图无法显示中文的解决
  8. 【数论 G】B045_约数之和(枚举 | 快速幂)
  9. 66666666666
  10. (CSP2019模拟)DTOJ 4632. 隐蔽的居所