Java实现桌面日历

本文实例为大家分享了Java实现桌面日历的具体代码,供大家参考,具体内容如下

问题描述:

编写一个程序,有一个窗口,该窗口为BorderLayout布局。窗口的中心添加一个Panel容器:pCenter,pCenter的布局是7行7列的GridLayout布局,pCenter的中放置49个标签,用来显示日历。窗口北面添加一个Panel容器pNorth,其布局是FlowLayout布局,pNorth放置两个按钮:nextMonth和previousMonth按钮,单击nextMonth,可以显示当前月的下一个月的日历;单击previousMonth按钮,可以显示当前月的上一个月的日历。窗口的南面添加一个Panel容器pSouth,其布局是FlowLayout布局,pSouth中放置一个标签用来显示一些信息。请完成界面设计和相关功能。运行结果如下图所示。

问题解决:

新建Java项目,在项目下新建package,命名为Calendar。

CalendarBean.java

package Calendar;
 
import java.util.Calendar;
public class CalendarBean
{ 
  String  day[];
  int year=2018,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 日历=Calendar.getInstance();
      日历.set(year,month-1,1);            
      int 星期几=日历.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=星期几,n=1;i<星期几+day;i++)
     {
        a[i]=String.valueOf(n) ;
        n++;
     } 
     return a;
  }
}

CalendarFrame.java

package Calendar;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class CalendarFrame extends Frame implements ActionListener
{    
    Label labelDay[]=new Label[42];
     Button titleName[]=new Button[7];
     String name[]={"日","一","二","三", "四","五","六"};
     Button nextMonth,previousMonth;
     int year=2020,month=5;
     CalendarBean calendar;
     Label showMessage=new Label("",Label.CENTER);
     public CalendarFrame()
     {  Panel pCenter=new Panel();
       pCenter.setLayout(new GridLayout(7,7)); //将pCenter的布局设置为7行7列的GridLayout 布局。
        for(int i=0;i<7;i++)
        {  
            titleName[i]=new Button(name[i]);
            pCenter.add(titleName[i]);//pCenter添加组件titleName[i]。
        }
        for(int i=0;i<42;i++)
        {
           labelDay[i]=new Label("",Label.CENTER);
           pCenter.add(labelDay[i]);//pCenter添加组件labelDay[i]。
        }
        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 Button("下月");
        previousMonth=new Button("上月");
        nextMonth.addActionListener(this);
        previousMonth.addActionListener(this);
        Panel pNorth=new Panel(),
              pSouth=new Panel();
        pNorth.add(previousMonth);
        pNorth.add(nextMonth);
        pSouth.add(showMessage);
        showMessage.setText("日历:"+calendar.getYear()+"年"+ calendar.getMonth()+"月" );
        ScrollPane scrollPane=new ScrollPane();
        scrollPane.add(pCenter);
        add(scrollPane,BorderLayout.CENTER);// 窗口添加scrollPane在中心区域
        add(pNorth,BorderLayout.NORTH);//  窗口添加pNorth 在北面区域
        add(pSouth,BorderLayout.SOUTH);// 窗口添加pSouth 在南区域。
     }
     public void actionPerformed(ActionEvent e)
     {  if(e.getSource()==nextMonth)
        { month=month+1;
          if(month>12) {
              month=1;
              year++;
          }
          calendar.setYear(year);
          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;
              year--;
         }
          calendar.setYear(year);
          calendar.setMonth(month);
          String day[]=calendar.getCalendar();
           for(int i=0;i<42;i++)
           {  
               labelDay[i].setText(day[i]);
           }
        }
       showMessage.setText("日历:"+calendar.getYear()+"年"+calendar.getMonth()+"月" );
     }
}

CalendarMainClass.java

package Calendar;
public class CalendarMainClass
{ 
    public static void main(String args[])
 {   
    CalendarFrame frame=new CalendarFrame();
     frame.setBounds(100,100,360,300);
     frame.setVisible(true);
     frame.validate();
     frame.addWindowListener(new java.awt.event.WindowAdapter()
                              {  public void windowClosing(java.awt.event.WindowEvent e)
                                {  System.exit(0);
                                }
                              }
                );
 }
}

运行结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java编写实现窗体程序显示日历

    本文实例为大家分享了Java实现窗体程序显示日历的具体代码,供大家参考,具体内容如下 实训要求: 代码: Test类: import java.awt.*;   import java.awt.event.*;   import javax.swing.*;      public class Test extends JFrame {       JButton week1, week2, week3, week4, week5, week6, week7, next, pro;      

  • java实现日历窗口小程序

    本文实例为大家分享了java实现日历窗口小程序的具体代码,供大家参考,具体内容如下 标签:java基础 功能: 1.按月翻页. 2.输入月份年份,直接跳转. 效果图: //CalendarMainClass.java public class CalendarMainClass{     public static void main(String args[]){         CalendarFrame frame = new CalendarFrame();         frame.

  • Java实现简单日历小程序 Java图形界面小日历开发

    今天给大家介绍一下如何用Java swing开发一款简单的小日历,下面我们来看代码: 首先创建一个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

  • Java实现窗体程序显示日历

    本文实例为大家分享了Java实现窗体程序显示日历的具体代码,供大家参考,具体内容如下 实训要求: 1.使用BorderLayout 进行总体布局 2.在North 位置放置包含两个按钮( 上月和下月)的Panel 3.在South 位置放置一个Label 用于显示当前年份和月份 4.在Center 位置放置一个显示日历的Panel 5.显示日历的Panel 设置7 行7 列的GridLayout 布局,其中第1行放置7个按钮显示周“几”,其他6 行放置42 个Label 用于显示期. 6.启动程

  • 日历显示读出输入的年月的java代码

    复制代码 代码如下: import java.awt.*;import java.awt.event.*;import java.util.Calendar; import javax.swing.JOptionPane; class CalendarBean {  //定义一个日历类 String day[]; //天数数组 int year = 2011, month = 9; //给定一个初始年月 public void setYear(int year) {   this.year =

  • Java实现的日历功能完整示例

    本文实例讲述了Java实现的日历功能.分享给大家供大家参考,具体如下: 应用名称:Java日历 用到的知识:Java GUI编程,日期操作 开发环境:win8+eclipse+jdk1.8 功能说明:一个很简单的万年历,可以选择年份和月份,也可以用按钮翻页,日历会实时更新日期,最下方会显示当前操作系统的时间. 效果图: 源代码: CalendarFrame.java import java.awt.BorderLayout; import java.awt.GridLayout; import

  • Java实现简单的日历界面

    本文实例为大家分享了Java实现简单日历界面的具体代码,供大家参考,具体内容如下 请使用JFrame.JPanel.JButton.JLabel和不同的布局管理器,实现如下日历视图. import java.awt.*; import javax.swing.*; public class Main {     public static void main(String[] args) {         JFrame frame = new JFrame("calendar");

  • Java实现图形化界面的日历

    本文实例为大家分享了Java实现图形化界面日历的具体代码,供大家参考,具体内容如下 此程序主要功能实现了可以根据用户选择的年月日来定位日期,日期的旁边用#加以标注 主界面如下: 代码如下: import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.SimpleDateFormat; import java.util.Calendar; i

  • Java中的Calendar日历API用法完全解析

    第一部分 Calendar介绍 Calendar 定义: public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar> {} Calendar 可以看作是一个抽象类. 它的实现,采用了设计模式中的工厂方法.表现在:当我们获取Calendar实例时,Calendar会根据传入的参数来返回相应的Calendar对象.获取Calendar实例,有以下两种方式: (1) 当我们通过 Cal

  • Java实现窗体程序显示日历表

    本文实例为大家分享了Java实现窗体程序显示日历表的具体代码,供大家参考,具体内容如下 实训要求: 1.简单实现日历功能,能查看前月后月的日历功能.2.使用JTable 组件显示日历. 参考结果: 代码: CalendaBean.java import java.util.Calendar;   public class CalendaBean {     Test test;     String[] day;       int year = 2017, month = 7;       p

随机推荐