首先创建一个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图形界面开发小日历相关推荐

  1. 便利店小程序需要服务器吗,便利店开发小程序的功能

    随着小程序的不断优化和完善,小程序的场景也越来越细分化,使用范围非常广泛.现在不论是出行.餐饮.企业.购物等都开始入驻小程序,特别是对于一些便利店来说,开发小程序是会有不少功能的,那么便利店开发小程序 ...

  2. 小程序沉浸式_企业开发小程序:客户裂变式增长

    最近几年,各行各业中都有不少企业.商家获客难窘境.因此,很多企业.商家想知道:"怎么做,才能获取到大量流量?"小编给大家推荐一种方式:开发一个微信小程序,然后利用小程序来获取大量流 ...

  3. 【小程序专栏】总结uniapp开发小程序的开发规范

    文章目录 一.项目结构 二.开发规范 遵循Vue 单文件组件 (SFC) 规范 组件及接口规范 三.css样式规范 全局样式与局部样式 尺寸响应式 字体的使用 请使用flex布局方式 一.项目结构 在 ...

  4. 小程序如何租用云服务器,开发小程序怎样租用云服务器

    开发小程序怎样租用云服务器 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 按照 ...

  5. 【微信小程序宝典】从零开始做微信小程序开发

    开发前必读简要 基于大量无效开发,无法上线的案例,所以开发前部分知识十分重要:| 链接 微信小程序个人注册简单步骤 打开mp.weixin.qq.com,点击右上角立即注册,进入小程序注册| 链接 微 ...

  6. 微信小程序与Java后台的通信

    一.写在前面 最近接触了小程序的开发,后端选择Java,因为小程序的代码运行在腾讯的服务器上,而我们自己编写的Java代码运行在我们自己部署的服务器上,所以一开始不是很明白小程序如何与后台进行通信的, ...

  7. Java小程序post如何传参,微信小程序向Java后台传输参数的方法实现

    微信小程序向Java后台传输参数的方法实现 首先,微信小程序我使用的是微信web开发者工具 想要向后台传输数据,需要在js中写 在微信小程序的官方文档中可以看到一个api叫wx.request它的作用 ...

  8. 用JAVA写一个画图小程序(JAVA 大作业)

    第一次写博客 且是稍微大点的程序 看看就行 重新写的在这,更加清晰明了:点击进入:用JAVA写一个画图小程序(JAVA 大作业)重排版本 设计思路 首先我直接去了Windows自带画图程序去实践模拟, ...

  9. Java后台微信点餐小程序开发最新版笔记,Springboot+Mysql+Freemarker+Bootstrap+微信小程序实现扫码点餐小程序,包含语音提示,微信消息推送,网页管理后台

    由于之前的Java后台微信点餐小程序有些知识点过时了,所以今天重新出一版,把里面过时的知识点更新下 前五章是部署笔记,后面是知识点的详细讲解,大家可以先看部署笔记,部署起来后,再跟着详细知识学习. 第 ...

最新文章

  1. 扩增子图表解读5火山图:差异OTU的数量及变化规律
  2. DeepMind推出首个商业产品,30秒内准确诊断眼疾!
  3. 无人驾驶属于计算机科学吗,无人驾驶的车辆如何识别物体?科研笔记,原来车辆的眼睛是它...
  4. Android小項目之---吃飯選哪?--》選擇對話框(附源碼)
  5. 第三方类库的学习心态
  6. 中国版MSN慈善缘何遇冷:白领网民参与只为时尚(转自--竞报)
  7. STM32 连续操作flash
  8. mysql用户表示例_MySQL添加用户、删除用户与授权与关联实例
  9. 常用验证码功能实现大全
  10. String对象不可改变的特性
  11. Jenkins在执行JUnit报告时报错Test reports were found but none of them are new. Did leafNodes run? 问题解决
  12. 李想:“做正确的事,不做容易的事”
  13. 微信公众号(订阅号)申请流程
  14. 怎样锁定oracle用户名,oracle 锁定用户
  15. 笔记本触摸板操作手势
  16. PyTorch 1.x 常用知识
  17. 如何制作3D动画人物
  18. 干货!旋转预测能够告诉我们分类器准确度的哪些信息?
  19. 弹性盒子(弹性布局)
  20. 比例运算电路小结(电路组态 输入电阻)

热门文章

  1. 浅谈解析库XPath,bs4和pyquery
  2. [hadoop那些事]hadoop及其组件资源 115/百度云
  3. 浏览器禁用cookie后session还能用吗?cookie与session区别
  4. oracle 计算当前日期是今年的第几周的计算方法
  5. PLSQL计算日期是当月第几周
  6. java身份证格式强校验
  7. 了解公司企业:Primetics
  8. 网上免费平台学习美术
  9. 发现了一个可以让网盘加速的小工具(文末还有一个用了很久的小方法)
  10. 数电知识点总结第二章:逻辑代数基础