Calendar日历小程序
//有待完善,有点bug
package com.sunshine.framework.calendar.model;
import java.util.Calendar;
/**
*
* <p>
* 描述该类情况 {@link 代表跟谁有关系}
* </p>
*
* @author 王超
* @since 1.0
* @date 2016年10月20日 下午8:19:15
* @see 新建|修改|放弃
* @see com.sunshine.framework.calendar.model.CalendarBean
*/
public class CalendarBean {
String day[];
int year = 2005, month = 0;
public String[] getCalendar() {
String a[] = new String[42];
// 获取日历的实例对象
Calendar date = Calendar.getInstance();
// 设置日历日期
date.set(this.year, this.month - 1, 1);
// 获取周数
int week = date.get(Calendar.DAY_OF_WEEK);
int day = 0;
// 判断大月份
if (this.month == 1 || this.month == 3 || this.month == 5 || this.month == 7 || this.month == 8
|| this.month == 10 || this.month == 12) {
day = 31;
}
// 判断小月
if (this.month == 4 || this.month == 6 || this.month == 9 || this.month == 11) {
day = 30;
}
// 单独判断2月
if (this.month == 2) {
// 判断是闰年 能被4或400整除 但不能被100整除
if ((this.year % 4 == 0) || (this.year % 100 != 0) || (this.year % 400 == 0)) {
day = 29;
} else {
day = 28;
}
}
for (int i = week, n = 1; i < week + day; i++) {
a[i] = String.valueOf(n);
n++;
}
return a;
}
public int getMonth() {
return this.month;
}
public int getYear() {
return this.year;
}
public void setMonth(int month) {
this.month = month;
}
public void setYear(int year) {
this.year = year;
}
}
package com.sunshine.framework.calendar;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.ScrollPane;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import com.sunshine.framework.calendar.model.CalendarBean;
/**
*
* <p>
* 描述该类情况 {@link 代表跟谁有关系}
* </p>
*
* @author 王超
* @since 1.0
* @date 2016年10月20日 下午8:41:58
* @see 新建|修改|放弃
* @see com.sunshine.framework.calendar.CalendarFrame
*/
public class CalendarFrame extends JFrame implements ActionListener {
/***/
private static final long serialVersionUID = 1L;
JButton button = new JButton();
CalendarBean calendar;
JLabel labelDay[] = new JLabel[42];
JLabel lbl1 = new JLabel("请输入年份:");
JLabel lbl2 = new JLabel("");
String name[] = { "日", "一", "二", "三", "四", "五", "六" };
JButton nextMonth, previousMonth;
JLabel showMessage = new JLabel("", JLabel.CENTER);
JTextField text = new JTextField(10);
JButton titleName[] = new JButton[7];
int year = 1996, month = 1;
public CalendarFrame() {
JPanel pCenter = new JPanel();
// 将pCenter的布局设置为7行7列的GridLayout布局
pCenter.setLayout(new GridLayout(7, 7));
// pCenter添加组件titleName[i]
for (int i = 0; i < 7; i++) {
// 把星期值存入到titleName数组里
this.titleName[i] = new JButton(this.name[i]);
}
// pCenter添加组件labelDay[i]
for (int i = 0; i < 42; i++) {
this.labelDay[i] = new JLabel("", JLabel.CENTER);
pCenter.add(this.labelDay[i]);
}
this.text.addActionListener(this);
this.calendar = new CalendarBean();
this.calendar.setYear(this.year);
this.calendar.setMonth(this.month);
String day[] = this.calendar.getCalendar();
for (int i = 0; i < 42; i++) {
this.labelDay[i].setText(day[i]);
}
this.nextMonth = new JButton("下月");
this.previousMonth = new JButton("上月");
this.button = new JButton("确定");
// 注册监听器
this.nextMonth.addActionListener(this);
this.previousMonth.addActionListener(this);
this.button.addActionListener(this);
JPanel pNorth = new JPanel(), pSouth = new JPanel();
pNorth.add(this.showMessage);
pNorth.add(this.lbl2);
pNorth.add(this.previousMonth);
pNorth.add(this.nextMonth);
pNorth.add(this.lbl1);
pNorth.add(this.text);
pNorth.add(this.button);
this.showMessage.setText("日历:" + this.calendar.getYear() + "年" + this.calendar.getMonth() + "月");
ScrollPane scrollPane = new ScrollPane();
scrollPane.add(pCenter);
// 窗口添加scrollPane在中心区域
add(scrollPane, BorderLayout.CENTER);
// 窗口添加pNorth 在北面区域
add(pNorth, BorderLayout.NORTH);
// 窗口添加pSouth 在南区域。
add(pSouth, BorderLayout.SOUTH);
}
/*
* (方法重写)
*
* @see
* java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == this.nextMonth) {
this.month = this.month + 1;
if (this.month > 12) {
this.month = 1;
}
this.calendar.setMonth(this.month);
String day[] = this.calendar.getCalendar();
for (int i = 0; i < 42; i++) {
this.labelDay[i].setText(day[i]);
}
} else if (e.getSource() == this.previousMonth) {
this.month = this.month - 1;
if (this.month < 1) {
this.month = 12;
}
this.calendar.setMonth(this.month);
String day[] = this.calendar.getCalendar();
for (int i = 0; i < 42; i++) {
this.labelDay[i].setText(day[i]);
}
} else {
this.month = this.month + 1;
if (this.month > 12) {
this.month = 1;
}
this.calendar.setYear(Integer.parseInt(this.text.getText()));
String day[] = this.calendar.getCalendar();
for (int i = 0; i < 42; i++) {
this.labelDay[i].setText(day[i]);
}
}
this.showMessage.setText("日历:" + this.calendar.getYear() + "年" + this.calendar.getMonth() + "月");
}
}
package com.sunshine.framework.calendar;
import javax.swing.JFrame;
import javax.swing.UIManager;
/**
*
* <p>
* 描述该类情况 {@link 代表跟谁有关系}
* </p>
*
* @author 王超
* @since 1.0
* @date 2016年10月20日 下午9:34:15
* @see 新建|修改|放弃
* @see com.sunshine.framework.calendar.CalendarMain
*/
public class CalendarMain {
public static void main(String[] args) {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
CalendarFrame frame = new CalendarFrame();
frame.setBounds(100, 100, 360, 300);
frame.setTitle("日历小程序");
// 窗体居中显示
frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Calendar日历小程序的更多相关文章
- Java可视化日历(Date类、DATe Format类、Calendar类综合运用),开发可视化日历小程序
Java时间日期类综合运用,开发可视化日历小程序 由键盘输入指定格式的日期,打印这个月的日历 1.代码 import java.text.DateFormat; import java.text.Pa ...
- Java实现日历小程序【代码】
这个没啥难点的,主要是界面设计吧 界面就是这个样子 运行时请在src同目录下放上我女神的照片 -----------------------------------代码如下-------------- ...
- 微信小程序踩坑集合
1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教程:https://mp.weixin.qq.com/debu ...
- 微信小程序——极点日历使用方法
极点日历github项目地址 添加至自己的小程序方法 极点日历属性接口文档 代码实例: xml: <calendar calendar-style="calendar" he ...
- 微信小程序组件 日历
js文件 'use strict'; let choose_year = null, choose_month = null; const conf = { data: { hasEm ...
- 推荐简约漂亮的小程序插件 calendar
公司团队制作,主要用于内部使用,觉得这个感觉不错,所以推荐出来,让大家试试~ 日历功能 日历基本功能,自定义样式 先睹为快 使用方法: 1. 在微信小程序管理后台--设置--第三方服务,按 AppID ...
- 微信小程序:手写日历组件
一.前言 最近公司要做一个酒店入住的小程序,不可避免的一定会使用到日历,而小程序没有内置的日历组件.在网上看了一下也没有非常适合需求的日历,于是自己写了一个. 二.代码 1. 原理分析 写一个日历只需 ...
- 微信小程序+OLAMI(欧拉蜜)自然语言API接口制作智能查询工具--快递、聊天、日历等
微信小程序最近比较热门,再加上自然语义理解也越来越被人关注,于是我想赶赶潮流,做一个小程序试试.想来想去快递查询应该是一种比较普遍的需求. 如果你也在通过自然语言接口做点什么,希望我的这篇博客能帮到你 ...
- 微信小程序横版日历,tab栏
代码地址如下:http://www.demodashi.com/demo/14243.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...
随机推荐
- 新安装个Myeclipse,导入以前做的程序后程序里好多错,提示The import java.util cannot be resolved
原因:这是由于你的项目buildpath不对原来的项目,比如采用了原先的MyEclipse自带的jdk (D:\myeclipse\XXXXXX)结果,你现在换了一个,原来的没了就导致了现在这种错误, ...
- 类似网易新闻 title栏 滚动时 文字放大&变色
http://files.cnblogs.com/files/n1ckyxu/ScrollTitleView.zip
- DevExpress GridView加入DevExpress中的右键菜单PopuMenu
1. 添加一个Barmanager控件 2. 加入popumenu控件,点击该控件右上角的黑色三角号,编辑选项,点击编辑的选项,选择事件,编辑事件. 3. 在使用该右键菜单的控件添加MouseUp事件 ...
- [转]MongoDB密码设置(基于windows)
参考文档:http://www.cnblogs.com/zengen/archive/2011/04/23/2025722.html MongoDB部署到Windows上后是默认是无权限限制的的. ...
- windows下安装 sphinx 数据库全文搜索引擎
此次演示的环境是:win7系统,64位,php5.4.x,apache sphinx,斯芬克斯(英语不好的同学可以直接读这个音),意狮身人面像 特点:创建索引速度快,3分钟左右能创建100万条记录的索 ...
- Wordpress基础:文章和页面的区别
页面: 页面是你可以单独建立一个固定页面,可以作为留言板,或者通知的单页面,发布之后是固定的网址. 页面并不能被分类.亦不能拥有标签,但是它们可以有层级关系.您可将页面附属在另一个页面之下. 对应模板 ...
- iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案—scrollIntoView()
问题描述 iOS系统下,移动web页面,inpu获取焦点弹出系统虚拟键盘时,偶尔会出现挡住input的情况,尽管概率不大,但是十分影响用户体验. 问题重现 原始页面:页面中有header.main.f ...
- http://blog.csdn.net/ClementAD/article/category/6217187/2
http://blog.csdn.net/ClementAD/article/category/6217187/2
- SynchronousQueue应用
SynchronousQueue是无界的,是一种无缓冲的等待队列,但是由于该Queue本身的特性,在某次添加元素后必须等待其他线程取走后才能继续添加:可以认为SynchronousQueue是一个缓存 ...
- 视觉中的深度学习方法CVPR 2012 Tutorial Deep Learning Methods for Vision
Deep Learning Methods for Vision CVPR 2012 Tutorial 9:00am-5:30pm, Sunday June 17th, Ballroom D (Fu ...