Java如何实现桌面日历

34次阅读
没有评论

共计 3773 个字符,预计需要花费 10 分钟才能阅读完成。

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

问题描述:

编写一个程序,有一个窗口,该窗口为 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 i++)
 { 
 titleName[i]=new Button(name[i]);
 pCenter.add(titleName[i]);//pCenter 添加组件 titleName[i]。 }
 for(int i=0;i 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 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 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 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 如何实现桌面日历”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-01发表,共计3773字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)