适合超级新手的万年历小程序
Java swing实现的万年历小程序 适合超级超级新手
要求:实现输入年份可是实现该年每个月份的日期,比较简单适合新手
该代码只用到了三个类:Main用于启动 Frame实现界面渲染 Bean 实现判断大小月份、平年闰年
这个就是运行成功之后的界面了,非常的简单适合超级新手。
CalendarBean类:
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 date=Calendar.getInstance(); date.set(year,month-1,1); int week=date.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=week,n=1;i<week+day;i++) { a[i]=String.valueOf(n) ; n++; } return a; }
}
CalendarFrame类:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*; public class CalendarFrame extends JFrame implements ActionListener
{ JLabel labelDay[]=new JLabel[42]; JTextField text=new JTextField(10); JButton titleName[]=new JButton[7]; JButton button = new JButton(); String name[]={"日","一","二","三", "四","五","六"}; JButton nextMonth,previousMonth; int year=2018,month=1; //启动程序显示的日期信息 CalendarBean calendar; JLabel showMessage=new JLabel("",JLabel.CENTER); JLabel lbl1 = new JLabel("请输入年份:"); JLabel lbl2=new JLabel(" "); public CalendarFrame() {setBackground(new Color(0, 128, 128)); JPanel pCenter=new JPanel(); pCenter.setBackground(new Color(0, 139, 139));//将pCenter的布局设置为7行7列的GridLayout 布局。 pCenter.setLayout(new GridLayout(7,7)); //pCenter添加组件titleName[i] for(int i=0;i<7;i++) { titleName[i]=new JButton(name[i]); pCenter.add(titleName[i]); } //pCenter添加组件labelDay[i] for(int i=0;i<42;i++) { labelDay[i]=new JLabel("",JLabel.CENTER); pCenter.add(labelDay[i]); } text.addActionListener(this); calendar=new CalendarBean(); calendar.setYear(year); calendar.setMonth(month); String day[]=calendar.getCalendar(); for(int i=0;i<42;i++) { labelDay[i].setText(day[i]); } nextMonth=new JButton("下月"); previousMonth=new JButton("上月"); button=new JButton("确定"); //注册监听器 nextMonth.addActionListener(this); previousMonth.addActionListener(this); button.addActionListener(this); JPanel pNorth=new JPanel(), pSouth=new JPanel(); pNorth.add(showMessage); pNorth.add(lbl2); pNorth.add(previousMonth); pNorth.add(nextMonth); pSouth.add(lbl1); pSouth.add(text); pSouth.add(button); showMessage.setText("日历:"+calendar.getYear()+"年"+ calendar.getMonth()+"月" ); ScrollPane scrollPane=new ScrollPane(); scrollPane.add(pCenter); getContentPane().add(scrollPane,BorderLayout.CENTER);// 窗口添加scrollPane在中心区域 getContentPane().add(pNorth,BorderLayout.NORTH);// 窗口添加pNorth 在北面区域 getContentPane().add(pSouth,BorderLayout.SOUTH);// 窗口添加pSouth 在南区域。 } public void actionPerformed(ActionEvent e) { if(e.getSource()==nextMonth) { month=month+1; if(month>12) month=1; calendar.setMonth(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); String day[]=calendar.getCalendar(); for(int i=0;i<42;i++) { labelDay[i].setText(day[i]); } } else if(e.getSource()==button) { month=month+1; if(month>12) month=1; calendar.setYear(Integer.parseInt(text.getText())); String day[]=calendar.getCalendar(); for(int i=0;i<42;i++) { labelDay[i].setText(day[i]); } } showMessage.setText("日历:"+calendar.getYear()+"年"+calendar.getMonth()+"月" ); }
}
CalendarMainClass类:
import javax.swing.JFrame;
import javax.swing.UIManager; public class CalendarMainClass
{ public static void main(String args[]) { try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); //windows界面风格 }catch (Exception e) { 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); }
}
就是这样了~~~~
适合超级新手的万年历小程序相关推荐
- c语言小程序 万年历,C语言实现万年历小程序
这篇文章主要为大家详细介绍了C语言实现万年历小程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 一.杂谈 大一学了C之后一直困惑,C到底怎么用?它不像HTML那么直观 ...
- 2021最新版万年历小程序搭建教程
更新: 2.0新增星运赚任务系统,用户自然裂变更强,用户留存率更高,流量主收益更好 增加小程序原生广告位,经过内部优化后的流量主收益更好,适配广告更广泛 新增小程序开屏广告,流量主收益提升百分之20以 ...
- 新手入门微信小程序-从注册到开发(校庆头像框)
微信公众号:数学建模与人工智能 GitHub - QInzhengk/Math-Model-and-Machine-Learning 展示效果: 最近从网上找了一个开源的生成和校庆有关的微信头像小程 ...
- 新手前端微信小程序img图片无法显示问题
最近自己在做毕设,是一个微信小程序,虽然自己有一点前端开发经验,以为小程序前端和这个差不多可以直接开撸,但是这两天被一些图片问题烦了好久. 这也是自己第一次写博客,实在太生气了,网上也没找到自己想要的 ...
- 微信小程序服务器新手教程,微信小程序新手教程上手开发与使用总结
微信小程序新手教程上手开发与使用总结,本篇默认已经成功安装微信小程序工具,来和小编一起看看吧 一.模板 WXML提供模板组件给我们使用,可以在模板定义公用的代码片段,然后在需要引用的地方进行调用. 定 ...
- java 显示天气的小程序_超级简单的微信小程序获取今日天气预报代码 小程序获取七日天气...
代码是天气api的小程序demo, 粘贴上js和wxml就可以运行看效果了, 有问题的加我qq 445899710, 可提供源代码, 效果如图 如果是测试, 请勾选配置 不校验合法域名.web-vie ...
- 微信小程序在线点餐外卖小程序实现方法适合校园点餐毕业设计小程序(含代码解释)
随着目前的外卖强势入驻,很多的店铺也自己开发了一个自己的在线点餐系统,为了方便顾客可以实时的看到该店铺的菜品,更方便的满足顾客无需走动即可点到自己想吃的饭菜! 开发了这款微信小程序主要包含功能:微信登 ...
- 超级简单thinkphp微信小程序服务商分账。以及小程序普通支付,微信特约商户
产品介绍 服务商分账,主要用于服务商帮助特约商户完成订单收单成功后的资金分配. 使用场景举例 1.服务商抽成 在各个行业中,服务商为特约商户提供增值服务,服务商与特约商户协商,可以从特约商户的交易流水 ...
- 超级好用的小程序版蓝牙调试工具:Ble蓝牙开发助手
随着物联网的快速发展,和硬件相关的项目越来越多,蓝牙WiFi几乎是必不可少的. 为了更方便的调试蓝牙模块的协议,最近写了一个蓝牙调试工具:Ble蓝牙开发助手 这样的工具,一搜一大堆,为什么还要再开发呢 ...
最新文章
- extern 关键字用法
- 基于Ruby的watir-webdriver自动化测试方案与实施(四)
- 三十二、R语言基本语法(下篇)
- python pandas 数据透视表_python – Pandas数据透视表:列顺序和小计
- 64位java_一文详解 Java 的八大基本类型!
- .NET跨平台之旅:将QPS 100左右的ASP.NET Core站点部署到Linux服务器上
- 为什么现在那么多人都想做电商?
- 计算机系统结构选择题
- IE6下a href=#与a href=javascript:void(0);的区别
- ildasm ilasm
- php三极管导通条件,关于NPN三极管的导通条件分析
- linux 光盘刻录命令,Linux中使用命令进行光盘刻录
- 双线性光强插值(Gouraud明暗处理)学习笔记
- java excel 密码,Java 加密、解密Excel文档
- QT中主线程终止子线程中的死循环
- 以stc15w408as为核心,基于gsm的红外报警技术报告
- 飞书从个性到共性,企业微信从共性到个性
- Fuchsia Friday:一切皆实体
- linux 内核配置简介
- 如何实现用户id生成一个唯一邀请码