Java实现简单的日历小程序之Java图形界面开发小日历
首先创建一个CalendarBean类,用于基本的日期计算:
package other1;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 类,用于界面的实现:
package other1;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=1996,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类调用即可:
package other1;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); }
}
Java实现简单的日历小程序之Java图形界面开发小日历相关推荐
- 便利店小程序需要服务器吗,便利店开发小程序的功能
随着小程序的不断优化和完善,小程序的场景也越来越细分化,使用范围非常广泛.现在不论是出行.餐饮.企业.购物等都开始入驻小程序,特别是对于一些便利店来说,开发小程序是会有不少功能的,那么便利店开发小程序 ...
- 小程序沉浸式_企业开发小程序:客户裂变式增长
最近几年,各行各业中都有不少企业.商家获客难窘境.因此,很多企业.商家想知道:"怎么做,才能获取到大量流量?"小编给大家推荐一种方式:开发一个微信小程序,然后利用小程序来获取大量流 ...
- 【小程序专栏】总结uniapp开发小程序的开发规范
文章目录 一.项目结构 二.开发规范 遵循Vue 单文件组件 (SFC) 规范 组件及接口规范 三.css样式规范 全局样式与局部样式 尺寸响应式 字体的使用 请使用flex布局方式 一.项目结构 在 ...
- 小程序如何租用云服务器,开发小程序怎样租用云服务器
开发小程序怎样租用云服务器 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 按照 ...
- 【微信小程序宝典】从零开始做微信小程序开发
开发前必读简要 基于大量无效开发,无法上线的案例,所以开发前部分知识十分重要:| 链接 微信小程序个人注册简单步骤 打开mp.weixin.qq.com,点击右上角立即注册,进入小程序注册| 链接 微 ...
- 微信小程序与Java后台的通信
一.写在前面 最近接触了小程序的开发,后端选择Java,因为小程序的代码运行在腾讯的服务器上,而我们自己编写的Java代码运行在我们自己部署的服务器上,所以一开始不是很明白小程序如何与后台进行通信的, ...
- Java小程序post如何传参,微信小程序向Java后台传输参数的方法实现
微信小程序向Java后台传输参数的方法实现 首先,微信小程序我使用的是微信web开发者工具 想要向后台传输数据,需要在js中写 在微信小程序的官方文档中可以看到一个api叫wx.request它的作用 ...
- 用JAVA写一个画图小程序(JAVA 大作业)
第一次写博客 且是稍微大点的程序 看看就行 重新写的在这,更加清晰明了:点击进入:用JAVA写一个画图小程序(JAVA 大作业)重排版本 设计思路 首先我直接去了Windows自带画图程序去实践模拟, ...
- Java后台微信点餐小程序开发最新版笔记,Springboot+Mysql+Freemarker+Bootstrap+微信小程序实现扫码点餐小程序,包含语音提示,微信消息推送,网页管理后台
由于之前的Java后台微信点餐小程序有些知识点过时了,所以今天重新出一版,把里面过时的知识点更新下 前五章是部署笔记,后面是知识点的详细讲解,大家可以先看部署笔记,部署起来后,再跟着详细知识学习. 第 ...
最新文章
- 扩增子图表解读5火山图:差异OTU的数量及变化规律
- DeepMind推出首个商业产品,30秒内准确诊断眼疾!
- 无人驾驶属于计算机科学吗,无人驾驶的车辆如何识别物体?科研笔记,原来车辆的眼睛是它...
- Android小項目之---吃飯選哪?--》選擇對話框(附源碼)
- 第三方类库的学习心态
- 中国版MSN慈善缘何遇冷:白领网民参与只为时尚(转自--竞报)
- STM32 连续操作flash
- mysql用户表示例_MySQL添加用户、删除用户与授权与关联实例
- 常用验证码功能实现大全
- String对象不可改变的特性
- Jenkins在执行JUnit报告时报错Test reports were found but none of them are new. Did leafNodes run? 问题解决
- 李想:“做正确的事,不做容易的事”
- 微信公众号(订阅号)申请流程
- 怎样锁定oracle用户名,oracle 锁定用户
- 笔记本触摸板操作手势
- PyTorch 1.x 常用知识
- 如何制作3D动画人物
- 干货!旋转预测能够告诉我们分类器准确度的哪些信息?
- 弹性盒子(弹性布局)
- 比例运算电路小结(电路组态 输入电阻)