Java 日历的小程序

来源:未知 责任编辑:智问网络 发表时间:2013-11-04 19:49 点击:

Java写的日历小程序,算法效率虽然不算很高,却是简单实用的

CalendarBean.java

  1. import java.util.Calendar;   
  2.  
  3. public class CalendarBean   
  4. {   
  5.        String day[];   
  6.        int year=2005,month=0;          
  7.        public void setYear(int year)   
  8.        {   
  9.            this.year=year;   
  10.        }   
  11.          
  12.        public int getYear()   
  13.        {   
  14.            return year;   
  15.        }   
  16.          
  17.        public void setMonth(int month)   
  18.        {   
  19.            this.month=month;   
  20.        }   
  21.          
  22.        public int getMonth()   
  23.        {   
  24.            return month;   
  25.        }   
  26.          
  27.        public String[] getCalendar()   
  28.        {   
  29.            String a[]=new String[42];   
  30.            Calendar date=Calendar.getInstance();   
  31.            date.set(year,month-1,1);   
  32.            int week=date.get(Calendar.DAY_OF_WEEK)-1;   
  33.            int day=0;   
  34.             
  35.            //判断大月份  
  36.            if(month==1||month==3||month==5||month==7 
  37.              ||month==8||month==10||month==12)   
  38.            {   
  39.                day=31;   
  40.            }   
  41.              
  42.            //判断小月  
  43.            if(month==4||month==6||month==9||month==11)   
  44.            {   
  45.                day=30;   
  46.            }   
  47.              
  48.            //判断平年与闰年  
  49.            if(month==2)   
  50.            {   
  51.                if(((year%4==0)&&(year%100!=0))||(year%400==0))   
  52.                {   
  53.                    day=29;   
  54.                }   
  55.                  
  56.                else   
  57.                {   
  58.                    day=28;   
  59.                }   
  60.             }   
  61.              
  62.            for(int i=week,n=1;i<week+day;i++)   
  63.            {   
  64.                    a[i]=String.valueOf(n) ;   
  65.                    n++;   
  66.            }              
  67.            return a;   
  68.         }   
  69. }  

CalendarFrame.java

  1. import java.awt.*;   
  2. import java.awt.event.*;   
  3. import javax.swing.*;  
  4.  
  5. public class CalendarFrame extends JFrame implements ActionListener   
  6. {   
  7.        JLabel labelDay[]=new JLabel[42];   
  8.        JTextField  text=new JTextField(10);  
  9.        JButton titleName[]=new JButton[7];   
  10.        JButton button = new JButton();  
  11.        String name[]={"日","一","二","三""四","五","六"};   
  12.        JButton nextMonth,previousMonth;   
  13.        int year=1996,month=1//启动程序显示的日期信息  
  14.        CalendarBean calendar;   
  15.        JLabel showMessage=new JLabel("",JLabel.CENTER);   
  16.        JLabel lbl1 = new JLabel("请输入年份:");  
  17.        JLabel lbl2=new JLabel("      ");  
  18.  
  19.        public CalendarFrame()   
  20.        {   
  21.            JPanel pCenter=new JPanel();   
  22.              
  23.          //将pCenter的布局设置为7行7列的GridLayout 布局。   
  24.            pCenter.setLayout(new GridLayout(7,7));    
  25.              
  26.          //pCenter添加组件titleName[i]  
  27.            for(int i=0;i<7;i++)   
  28.            {   
  29.                titleName[i]=new JButton(name[i]);   
  30.                pCenter.add(titleName[i]);   
  31.            }   
  32.  
  33.          //pCenter添加组件labelDay[i]  
  34.            for(int i=0;i<42;i++)   
  35.            {   
  36.                labelDay[i]=new JLabel("",JLabel.CENTER);   
  37.                pCenter.add(labelDay[i]);  
  38.            }   
  39.              
  40.            text.addActionListener(this);  
  41.            calendar=new CalendarBean();   
  42.            calendar.setYear(year);   
  43.            calendar.setMonth(month);   
  44.            String day[]=calendar.getCalendar();   
  45.  
  46.            for(int i=0;i<42;i++)   
  47.            {   
  48.                labelDay[i].setText(day[i]);   
  49.            }   
  50.  
  51.            nextMonth=new JButton("下月");   
  52.            previousMonth=new JButton("上月");   
  53.            button=new JButton("确定");  
  54.              
  55.            //注册监听器  
  56.            nextMonth.addActionListener(this);   
  57.            previousMonth.addActionListener(this);   
  58.            button.addActionListener(this);  
  59.              
  60.            JPanel pNorth=new JPanel(),  
  61.            pSouth=new JPanel();   
  62.            pNorth.add(showMessage);    
  63.            pNorth.add(lbl2);    
  64.            pNorth.add(previousMonth);   
  65.            pNorth.add(nextMonth);   
  66.            pSouth.add(lbl1);          
  67.            pSouth.add(text);  
  68.            pSouth.add(button);  
  69.            showMessage.setText("日历:"+calendar.getYear()+"年"+ calendar.getMonth()+"月" );  
  70.            ScrollPane scrollPane=new ScrollPane();   
  71.            scrollPane.add(pCenter);   
  72.            add(scrollPane,BorderLayout.CENTER);// 窗口添加scrollPane在中心区域   
  73.            add(pNorth,BorderLayout.NORTH);// 窗口添加pNorth 在北面区域   
  74.            add(pSouth,BorderLayout.SOUTH);// 窗口添加pSouth 在南区域。  
  75.  
  76.         }   
  77.         
  78.         public void actionPerformed(ActionEvent e)   
  79.         {   
  80.             if(e.getSource()==nextMonth)   
  81.             {   
  82.                 month=month+1;   
  83.                 if(month>12)   
  84.                 month=1;   
  85.                 calendar.setMonth(month);   
  86.                 String day[]=calendar.getCalendar();   
  87.  
  88.                 for(int i=0;i<42;i++)   
  89.                 {  
  90.                     labelDay[i].setText(day[i]);   
  91.                 }   
  92.              }   
  93.             else if(e.getSource()==previousMonth)   
  94.             {   
  95.                 month=month-1;                
  96.                 if(month<1)   
  97.                 month=12;   
  98.                 calendar.setMonth(month);   
  99.                 String day[]=calendar.getCalendar();   
  100.  
  101.                 for(int i=0;i<42;i++)   
  102.                 {   
  103.                     labelDay[i].setText(day[i]);   
  104.                 }   
  105.              }   
  106.             else if(e.getSource()==button)  
  107.             {  
  108.                 month=month+1;                
  109.                 if(month>12)                  
  110.                       month=1;                
  111.                 calendar.setYear(Integer.parseInt(text.getText()));               
  112.                 String day[]=calendar.getCalendar();                  
  113.                 for(int i=0;i<42;i++)  
  114.                 {  
  115.                     labelDay[i].setText(day[i]);  
  116.                 }  
  117.             }  
  118.           showMessage.setText("日历:"+calendar.getYear()+"年"+calendar.getMonth()+"月" );   
  119.        }   
  120. }   
  121.  
  122.    

CalendarMainClass .java

  1. import javax.swing.JFrame;  
  2. import javax.swing.UIManager;  
  3.  
  4. public class CalendarMainClass   
  5. {   
  6.         public static void main(String args[])   
  7.         {   
  8.              try {  
  9.                  UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); //windows界面风格  
  10.               }catch (Exception e) {  
  11.                 e.printStackTrace();  
  12.               }  
  13.               CalendarFrame frame=new CalendarFrame();   
  14.               frame.setBounds(100,100,360,300);   
  15.               frame.setTitle("日历小程序");  
  16.               frame.setLocationRelativeTo(null);//窗体居中显示  
  17.               frame.setVisible(true);   
  18.               frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  19.         }   
  20. }  

程序的效果图:

 

 

 

 

本文出自 “IT的点点滴滴” 博客,请务必保留此出处http://liangruijun.blog.51cto.com/3061169/625909

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Java编程语言的八大优点
    • JVM对象生命周期详细介绍
    • Java平台上的CRM系统
    • Java 算数测试小程序
    • Command(命令模式)
    • Java环境 使用Resin在NT环境下配置JSP环境
    • Java 一个简单的画图程序
    • Java 日历的小程序
    • Java 统计代码的小工具
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1