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.awthttp://www.cppcns.com.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|www.cppcns.com|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:这里再为大家推荐几款时间及日期相关工具供大家参考使用:
Unix时间戳(timestamp)转换工具:http://tools.jb51.net/code/unixtime
在线日期/天数计算器:http://tools.jb51.net/jisuanqi/date_jisuanqi
在线日期计算器/相差天数计www.cppcns.com算器:http://tools.jb51.net/jisuanqi/datecalc
在线日期天数差计算器:http://tools.jb51.net/jisuanqi/onlinedatejsq
更多关于java相关内容感兴趣的读者可查看本站专题:《java日期与时间操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
本文标题: Java实现的日历功能完整示例
本文地址: http://www.cppcns.com/ruanjian/java/253155.html
java中实现工厂日历_Java实现的日历功能完整示例相关推荐
- java中的工厂模式_java中工厂模式详解和使用方法
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻 ...
- java中reject方法作用_Java BindingResult.rejectValue方法代碼示例
本文整理匯總了Java中org.springframework.validation.BindingResult.rejectValue方法的典型用法代碼示例.如果您正苦於以下問題:Java Bind ...
- Java中的isnan函数_Java Float类isNaN()方法与示例
语法:public boolean isNaN (); public static boolean isNaN(float value); float 类isNaN()方法isNaN()方法在java ...
- java中intvalue方法作用_Java Integer类intValue()方法及示例
整数类intValue()方法intValue()方法在java.lang包中可用. intValue()方法用于返回此Integer对象表示的值,该值转换为int类型(通过强制转换). intVal ...
- java中replace的用法_Java String replace() 使用方法及示例
Java String replace() 使用方法及示例 Java String replace()方法用 新的字符/文本 替换字符串中每个匹配的旧字符/文本. replace()方法的语法是 st ...
- java中的工厂_java中的工厂模式
1.工厂模式 java中的工厂模式,个人理解是:要想制作一个汽车,则必须有轮子,发动机,座椅等. 1.创建一个接口,并且使得轮子,发动机,座椅三个实现类实现这个接口. 2.创建一个工厂,生成基于给定信 ...
- php ajax mysql 分页查询_PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
1.首先做主页面Ajax_pag.php 代码如下: Ajax做分页 .header{ margin-top: 20px; } 关键字: 地区代号地区名称父级代号 2.然后做分页查询JS页面Ajax_ ...
- java中的工厂模式
一.工厂模式介绍 工厂模式专门负责将大量有共同接口的类实例化.工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类. 工厂模式的几种形态: (1)简单工厂(Simple Factor ...
- java中的分层概念_Java分层概念
1.JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分?(下面所描述的service层就是biz) 首先这是现在最基本的分层方式,结合了SSH架构.modle层就是对 ...
最新文章
- 2022-2028年中国液晶电视市场投资分析及前景预测报告
- 2021年大数据ELK(九):使用VSCode测试分词器
- 【Android 逆向】Android 进程注入工具开发 ( 系统调用 | Android NDK 中的系统调用示例 )
- Linux资料分享,强势来袭!
- python 判断当前系统的Python编译器类型
- dns服务器的配置与管理
- 《王者荣耀》回应故障:3个工作日内补发排位赛星积分丢失
- vba for wps 7.0_两表数据核对,WPS表格真香
- mysql update多个字段_常见的MySQL命令大全fourth
- html jsf ajax blur,是否可以使用JSF ajax更新非JSF组件(纯HTML)?
- vb代码转为c++代码_vb代码转为c++代码_VB源码转换工具(VBto Converter)
- Python yolo 神经网络实现视频中的行人车辆检测计数(车流量统计)YOLO多目标跟踪与计数
- Ubuntu 20.04 LTS 修改IP地址
- 融新聚力,筑梦畅行|云畅科技“融云计划”第一期集训营圆满结营
- 股票实时行情数据有哪些分类?
- 无线网和网吧服务器,网吧网络使用无线局域网的几个优势所在
- SATA、AHCI、ATA等相关知识概述(基本概念)
- mysql实践周心得_实践周心得体会4篇
- 织梦data搬家后后台打开空白的解决方法
- xdm俺来了、详解超市订单管理系统SSM版本
热门文章
- 计算机10进制化2进制在线,二进制转十进制
- 人工智能:智慧环保(上海AI智慧环保,绿色新时代)
- 让学前端不再害怕英语单词(三)
- 无人机任务分配 matlab,Multi-UAV Task Assignment Benchmark
- web在线编辑word,excel,pdf插件-----WebOffice 文档控件API
- Verilog中if-else和case对比
- Android车机初体验
- python语言设计二级教程答案2019_全国计算机等级考试二级教程2019年版——Python语言程序设计参考答案...
- 【包运行】Java 实现图形界面的邮件轰炸机附带视频指导教程
- Zabbix忘记登录密码重置