您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > 小日历-JAVA课程设计实验报告
软件学院课程设计报告书课程名称设计题目专业班级学号姓名指导教师年月共17页第2页目录JAVA日历设计.......................................................................................31.设计目标.............................................................................................32.设计要求.............................................................................................33.制作要点:............................................................................................34.设计思想.............................................................................................35.设计类及对象设计.............................................................................46.代码分析.............................................................................................46.程序源代码.......................................................................................107.调试记录...........................................................................................158.总结...................................................................................................169.参考文献...........................................................................................17共17页第3页JAVA日历设计1.设计目标本课程设计实现一个日历的功能,可显示当前的年,月,日和星期.也可以查询,选择年,月后,显示当时的日历.2.设计要求(1)界面是日历。该日历可以按年前后翻动,当鼠标单击“上一年”按钮时,当前日历的年份将减一;当鼠标左键单击“下年”按钮,当前日历的年份将加一。(2)也可以在某年内按月前后翻动。当鼠标左键单击“上月”按钮时,当前日历的月份将减一;当鼠标左键单击“下月”当前日历表的月份将加一。(3)使用鼠标左键在要选择的日期上单击,变颜色.3.制作要点:(1).AWT与Swing的使用.(2)应用JApplet生成界面.4.设计思想(1)本小日历设计主体结构为:设计一个框架MainFrame,然后在MainFrame里添加一个MainPanel面板。定义一个MainPanel面板类,该面板以边布局格式,所有其他面板、标签等均添加到该面板中。(2)MainPanel面板北部(上方),添加一个年月面板YearMonthPanel。该年月面板主要放年份显示、月份显示、标题显示。YearMonthPanel面板也使用边布局格式,西部添加一个年份面板,放年份信息;中部添加一个TextPanel面板,放标题文本显示信息;东部添加一个月份面板MonthPanel,放月份下拉框信息。共17页第4页(3)MainPanel主面板的中部,添加一个DaysPanel面板用于放置月份的天数表格信息。(4)MainPanel主面板的南部(下方),添加一个InfoPanel面板,主要用于放置显示个人信息。(5)InfoPanel面板上设计添加一个超级链接标签,链接到个人博客。5.设计类及对象设计在本程序中:定义了一个Frame类,主要定义一个窗体框架,用于显示日历信息,并在主函数中只创建一个该窗体对象实现程序功能。定义了一个主日历面板类MyCalendar,其中包含了日历设计所用到的全局变量、功能函数等,在Frame类里定义了其对象。在该日历面板类里又设计了一个内部类CalendarTable表格类,用于布局日历天的显示格式。为了设计一个超级链接,定义了一个LinkLable类,单独保存在一个文件LinkTbale.java中,在日历面板类MyCalendar里定义了其对象。6.代码分析定义星期天到星期六全局变量publicstaticfinalStringWEEK_SUN=星期日;//星期标签名称publicstaticfinalStringWEEK_MON=星期一;publicstaticfinalStringWEEK_TUE=星期二;publicstaticfinalStringWEEK_WED=星期三;publicstaticfinalStringWEEK_THU=星期四;publicstaticfinalStringWEEK_FRI=星期五;publicstaticfinalStringWEEK_SAT=星期六;publicstaticfinalColorbackground=Color.white;//设置背景颜色publicstaticfinalColorforeground=Color.black;//设置前景颜色publicstaticfinalColorheaderBackground=Color.blue;//设置题头星期的背景颜色publicstaticfinalColorheaderForeground=Color.white;//设置题头星期的前景颜色publicstaticfinalColorselectedBackground=Color.green;//设置被选中的日期的共17页第5页背景颜色publicstaticfinalColorselectedForeground=Color.white;//设置被选中的日期的前景颜色privateJPanelcPane;//日历面板privateJLabelyearsLabel;//年份标签privateJSpinneryearsSpinner;//年调控,年份组合框privateJLabelmonthsLabel;//月份标签privateJComboBoxmonthsComboBox;//12月下拉框privateJTabledaysTable;//用来显示日期的table,日表格privateAbstractTableModeldaysModel;//天单元表格privateCalendarcalendar;//日历对象函数定义publicMyCalendar(){//构造函数cPane=(JPanel)getContentPane();}publicvoidinit(){//初始化,对所有的空间进行布局,面板界面函数cPane.setLayout(newBorderLayout());//使用border布局管理器calendar=Calendar.getInstance();//默认方式,以本地的时区和地区来构造CalendaryearsLabel=newJLabel(年份:);//设置年份标签显示yearsSpinner=newJSpinner();//构造年份spinner组合框yearsSpinner.setEditor(newJSpinner.NumberEditor(yearsSpinner,0000));yearsSpinner.setValue(newInteger(calendar.get(Calendar.YEAR)));//增加监听监听年份的改变yearsSpinner.addChangeListener(newChangeListener(){//注册该组合框的事件监听器publicvoidstateChanged(ChangeEventchangeEvent){intday=calendar.get(Calendar.DAY_OF_MONTH);calendar.set(Calendar.DAY_OF_MONTH,1);calendar.set(Calendar.YEAR,((Integer)yearsSpinner.getValue()).intValue());intmaxDay=calendar.getActualMaximum(Calendar.DAY_OF_MONTH);calendar.set(Calendar.DAY_OF_MONTH,daymaxDay?maxDay:day);updateView();//更新显示}});JPanelyearMonthPanel=newJPanel();//定义年月面板共17页第6页cPane.add(yearMonthPanel,BorderLayout.NORTH);//添加年月面板到日历面板的南面(最上方)yearMonthPanel.setLayout(newBorderLayout());//边布局模式yearMonthPanel.add(newJPanel(),BorderLayout.CENTER);JPanelyearPanel=newJPanel();//构建年份面板yearMonthPanel.add(yearPanel,BorderLayout.WEST);//年份面板添加到年月面板西部(左边)yearPanel.setLayout(newBorderLayout());//设置年份面板为边布局并添加年份标签和组合框yearPanel.add(yearsLabel,BorderLayout.WEST);yearPanel.add(yearsSpinner,BorderLayout.CENTER);monthsLabel=newJLabel(月份:);//设置月份标签显示monthsComboBox=newJComboBox();//向月份下拉框中增加内容for(inti=1;i=12;i++){//构造下拉框的12个月份monthsComboBox.addItem(newInteger(i));}monthsComboBox.setSelectedIndex(calendar.get(Calendar.MONTH));//下拉框当前月份为选中状态monthsComboBox.addActionListener(newActionListener(){//注册月份下拉框的事件监听器publicvoidactionPerformed(ActionEventactionEvent){intday=calendar.get(Calendar.DAY_OF_MONTH);calendar.set(Calendar.DAY_OF_MONTH,1);calendar.set(Calendar.MONTH,monthsComboBox.getSelectedIndex());intmaxDay=calendar.getActualMaximum(Calendar.DAY_OF_MONTH);calendar.set(Calendar.DAY_OF_MONTH,daymaxDay?maxDay:day);updateView();//更新面板显示}});JPanelmonthPanel=newJPanel();//定义月份面板y
本文标题:小日历-JAVA课程设计实验报告
链接地址:https://www.777doc.com/doc-2055249 .html