文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java如何实现桌面日历

2023-07-02 09:00

关注

本篇内容介绍了“Java如何实现桌面日历”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

问题描述:

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

Java如何实现桌面日历

问题解决:

新建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);                                }                              }                ); }}

运行结果:

Java如何实现桌面日历

“Java如何实现桌面日历”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯