欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    java日历小程序课程设计.docx

    • 资源ID:1217949       资源大小:116.56KB        全文页数:17页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    java日历小程序课程设计.docx

    湖南农业大学课程论文学院:信息科学技术班级:08级信息工程2班课程论文题目:JAVA日历小程序课程名称:JaVa程序设计(双语)评阅成绩:评阅意见:成绩评定教师签名:日期:年月摘要-1-关键词-1-1需求分析-1-1需求分析-1-1.2功能设计-1-2概要设计-1-2.1 开发环境-1-2. 2程序设计思路-1-2. 3具体功能设计-2-2. 4程序运行界面-2-1. 5程序流程图-3-3详细设计-3-2. 1初始化组件-3-3. 2初始化程序数据,绘制程序面板-3-4. 3显示日期的方法-6-3. 4点击按钮产生的效果-8-4程序测试-9-3.1 程序不能完全退出-9-4. 2下拉列表数据不能返回-10-5心得体会-10-6参考文献-11-致谢-11-附:程序源代码-12-JAVA日历小程序学生:郭显勇、刘彦波、任涛湖南农业大学信息科学技术学院2008级信息工程2班学号200841843227、200841843228、200841843219摘要:万年历是一个强大的日历系统,通过它可以实现对过去,现在以及将来日期的查询,通过在年份对话框中输入要查询的年份,再相应的在月份对应的下拉菜单选择要查询的月份,则可得到相应的日历。本实验是对图形用户界面,布局管理器的综合运用,理解JAVA的时间处理机制,编写独立运行的窗口。关键词:日历;swing;布局管理器;1需求分析1.1需求分析本程序的要求为:1.使用图形用户界面;2.本程序能够实现日期与星期的查询。1.2功能设计本程序要构建的万年历程序,其功能有以下几个方面:1.实现图形界面。2 .能以月历形式显示日期与星期。工作日、双休日、当天分别以黑色、红色和蓝色显示。3 .支持用户通过下拉形式菜单来选择月份。4 .通过点击“现在日期”来刷新日历。2概要设计2.1开发环境开发平台:MicrosoftWindowsXPProfessionalServicePack2开发工具:EclipseSDK3.2.0+JDK1.6.0_022.2程序设计思路1.月份总天数的算法:直接根据month_int,即月份序号判断该月的天数。当month_int等于2时,调用isLeapYear()方法判断是否为闰年。2 .网格内容算法:用dt.getDate()方法算出输出月份第一天为星期几,第一天的格子序号应该为7+第一天的星期序号。算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并从该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得O换行,即可完整的输出该月的日历。3 .日期颜色的算法:格子数从O开始,第一行为星期序号,则日期从第7格开始。根据格子序号i进行判断,当i模7余数为O或者6时日期为周末,置为红色;当i等于第一天的格子序号加上当前日期减一时,置为蓝色;其余日期为黑色。4 .如果年份小于2001年大于2031年则程序不予判断。2. 3具体功能设计数据选择列表:年份选择列表、月份选择列表。点击日期跳转按钮,即在日历中显示用户选择日期数据;点击现在日期按钮,即在日历中显示当前日期数据。2.4 程序运行界面(图2.4.1:程序运行界面截图)2.5 程序流程图(图251:程序流程图)3详细设计2.6 初始化组件importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.util.*;3. 2初始化程序数据,绘制程序面板在初始化模块中,首先定义一个公共类CalenderTrain,它继承自JFranIe。ACtionLiStener是一个接口,在实现此接口的类CaIenderTrain中,给需要关注其动作的组件跳转按钮button_jump和现在日期按钮button_today添加监听器(addActionListener(this),之后在事件处理方法publicvoidactionPerformed(ActionEvente)中,对每个事件进行不同处理。在这个类中,定义用到的标签、下拉列表框、按钮,放置面板。publicclassCalenderTrainextendsJFrameimplementsActionListenerJComboBoxMonth=newJComboBox();JComboBoxYear=newJComboBox();JLabelYear=newJLabeI.(“年份:”);JLabelMonth=newJLabCI("月份;Datenow_date=newDate();JButtonbutton_day=newJButton49;JButtonbutton_jump=newJBUtton("日期跳转);JButtonbutton_today=newJButton("现在日期);intnow_year=now_date.getYear()+1900;intnow_month=now_date.getMonth();booleanbool=false;Stringyear_int=null;intmonth_int;JPanelpane_ym=newJPanel();JPanelpane_day=newJPanel();JPanelpane_parent=newJPanel();调用CaIenderTrain,设定面板标题为JAVA日历程序。只给窗口设置frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLC)SE)的话,点击关闭按钮,执行的其实只有把窗口隐藏动作,在任务管理器中可以看到进程仍在运行。于是加上后面的代码,确保点击关闭,程序直接退出SySteII)。面板的大小设置为不能变化。publicCalenderTrainOsuper(z,JAVA日历程序);SetDefau1tCIoseOperation(DISPOSE_ON_CLOSE);addWindowListener(newWindowAdapterOpublicvoidwindowClose(WindowEvente)System,exit(0););SetResizable(false);设定年月时,规定年份的区间是当前年份的过去10年到当前年份的未来20年,月份区间为正常1-12月。由于在年份区间中,今年是所有年份中的第十一个,所以Year.SetSelectedIndexO指定要选择的列表项的整数,其中0指定列表中的第一项的参数为10时,年份刚好是2011。Pane_ym即放置年月下拉列表框以及两个控制按钮的面板。给“跳转按钮”和“现在日期”按钮添加监听事件。for(inti=now_year-10;i<=now_year+20;i+)Year,additem(i+“);)for(inti=1;i<13;i+)Month,addltem(i+“"):addItem(Objectanbject)为项列表添加项。仅当JConIbOBOX使用可变数据模型时此方法才有效。anObjeCL要添加到列表的Object)Year.SetSelectedIndex(10);button_jump.addActionListener(this);button_today.addActionListener(this);初始化日期按钮并绘制。由于每一月第一天不能确定,即所在列的位置(星期)不能确定,加上第一行的星期序号,画一个7*7网格布局管理器GridLayout0GridLayoUt把容器分成指定行和列的若干个网格,每个组件占一个网格,从左向右、从上到下依次把组件添加进来。所有的网格都是同样大小的。GridLayOUt(7,7)设置行列数为7*7。pane_day.SetLayout(newGridLayout(7,7);forGnti=0;i<49;i+)button_dayi=newJButton(,z);pane_day.add(button_dayi);)本程序中,对组件的布置、整形和定位授权给一个布局管理器,由布局管理器来负责。利用布局管理器可以做到:(1)计算一个容器的所选尺寸和最小尺寸(2)布置一个容器的组件。这里采用的是BorderLayout,按东南西北和中心将组件布置在容器的四周和中心。用SetCOntentPane()方法把容器置为JFrame的内容面板。用pack。方法调整此窗口的大小,以适合其子组件的首选大小和布局实现全部显示,然后用ShOW()方法显示出来。pane_parent.SetLayout(newBorderLayout();先把子容器pane_parent设置为东南西北中SetContentPane(pane_day);SetContentPane(pane_ym);pane_parent.add(pane_day,BorderLayout.SOUTH);pane_parent.add(pane_ym,BorderLayout.NORTH);把而容面板添加到子容器pane_parent中SetContentPane(pane_parent);把子容器添加到栏框中pack();调整此窗口的大小show();3. 3显示日期的方法根据bool的值,由if语句进行判断执行哪一显示日期的语句块,为true时,显示现在的时间;为false时,显示用户选定的时间。网格第一行,即0至6号格子,内容固定为星期序号,即“星期日”到“星期六”。voidsetDay()if(bool)year_int=now_year+;month_int=now_month;)elseyear_int=Year.getSelectedItem().toString();month_int-Month.getSelectedlndexO;getSelectedIndex()指定当前选择的丽表项的整数,其中0指定列表中的第一项;如果没有选择任何项或者当前所选项不在列表中,则返回-1)intyear_sel-Integer,parselnt(year_int)-1900;Integer构造个新分配的Integer对象,它表示String参数所指示的int值。使用与parselnt方法(对基数为10的值)相同的方式将该字符串转换成int值。Datedt=newDate(year_sel,month_int,1);GregorianCalendarcal=newGregorianCalendarO;cal.setTime(dt);Stringweek二星期日,星期一,星期二,星期三,星期四,星期五,星期六;intday-0;intday_week=0;for(inti=0;i<7;i+)button_dayi.setText(weeki);)判断当前月份的天数,根据它来设定day的值,其中二月份要判断是否是闰年。因为第一行的星期序号已经占用了7个格子,所以day_wcck的值要加上7,即day_week=7+dt.getDay()。if(month_i

    注意事项

    本文(java日历小程序课程设计.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开