java 日历_Java实现的日历功能完整示例
本文实例讲述了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实现的日历功能完整示例相关推荐
- java中实现工厂日历_Java实现的日历功能完整示例
本文实例讲述了java实现的日历功能.分享给大家供大家参考,具体如下: 应用名称:Java日历 用到的知识:Java GUI编程,日期操作 开发环境:win8+eclipse+jdk1.8 功能说明: ...
- Java借助OpenCV实现人脸识别登录完整示例
Java借助OpenCV实现人脸识别登录完整示例 OpenCV 效果预览 概述 下载与安装 目录说明 OpenCV的基本使用 项目集成 图片人脸检测 人脸对比相似度 识别视频中的人脸 摄像头识别人脸 ...
- php消息功能,PHP实现发送微博消息功能完整示例
PHP实现发送微博消息功能完整示例,操作技巧,本文,相关内容,感兴趣,数据结构 PHP实现发送微博消息功能完整示例 易采站长站,站长之家为您整理了PHP实现发送微博消息功能完整示例的相关内容. 本文实 ...
- java中的日历_Java中的日历功能
java.util.calendar类提供Java中的日历功能.是一个抽象类,提供在特定时间点和一组日历字段(例如YEAR,MONTH,DAY_OF_MONTH,HOUR等)之间进行转换的方法,以及用 ...
- java课程设计日历_java课程设计日历记事本赵锐.doc
java课程设计日历记事本赵锐.doc 2本科生课程设计课程名称JAVA程序设计课程设计题目日历记事本学号201440930252学生姓名赵锐所在专业2014计算机学院所在班级信工2班成绩课程设计时间 ...
- java密码强度_java实现的密码强度检测功能完整示例
本文实例讲述了java实现的密码强度检测功能.分享给大家供大家参考,具体如下: CheckStrength.java文件: package com.wx.pwd; /** * 检测密码强度 * * @ ...
- java语言计算圆周率_Java语言简单计算圆周率完整示例
本文实例讲述了Java语言简单计算圆周率完整示例.分享给大家供大家参考,具体如下,希望对大家学习Java语言简单计算圆周率有所帮助. 这两天在网上看到一个题,已知Pi可以用函数4 * (1 – 1/3 ...
- java entryset()_Java TreeMap entrySet()用法及代码示例
Java中的java.util.TreeMap.entrySet()方法用于从树图中包含的相同元素中创建一个集合.它本质上返回树图的集合视图,或者我们可以创建一个新集合并将Map元素存储到其中. 用法 ...
- java可视化日历_Java简单可视化日历程序
涉及知识: 一.Date类 在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理.这里简单 ...
最新文章
- 2008年4月10日:超负荷的一天
- MFC中创建线程实例
- Akka(9): 分布式运算:Remoting-远程构建式
- 【LeetCode笔记】416. 分割等和子集(Java、动态规划、背包问题、滚动数组)
- 新华社专题报道|陕建集团:打造「建筑行业」数字化转型标杆
- 用 Gearman 分发 PHP 应用程序的工作负载(转载)
- 005木桶缩放(比例非原始)
- 高速公路、铁路交通的常识
- 5G啊5G,你是不是只比4G多一G?
- VisionPro 常用工具介绍
- 全国计算机等级考试wps视频,全国计算机等级考试一级WPS-Office
- 解决微信设置字体大小对 rem 适配方式的影响
- JavaSSM接入支付宝当面付(扫码支付)
- python爬虫:利用BeautifulSoup爬取链家深圳二手房首页的详细信息
- 字符串String知识总结(上) 冲冲冲!!!
- 给在读研究生的一封信
- TextSeek使用教程(初级篇) - 文件搜索软件
- Java 实现位运算计算加减乘除
- 约数的和及约数的个数
- 【最小生成树】P2259 Charmer--viv