




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
辽 宁 工 业 大 学JAVA程序设计 课程设计(论文)题目: 日历控件 院(系): 软件学院 专业班级: 学 号: 学生姓名: 指导教师: 教师职称: 助 教 起止时间: 2009.5.25至2009.6.5 程序设计专题(报告)任务及评语院(系):软件学院 教研室:软件教研窒学 号学生姓名专业班级程序设计(报告)题目日历控件程序设计(报告)任务程序设计专题的任务与要求:(1)掌握Java编程、面向对象的基础知识。(2)较熟练地编写Java应用程序Application。(3)了解Java的常用标准类库、编程技巧、异常处理。(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。(7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。指导教师评语及成绩成绩: 指导教师签字: 2009 年 6 月 15 日辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)目 录第1章 课程设计的目的与要求11.1 课程设计目的11.2 课程设计的实验环境11.3 课程设计的预备知识11.4 课程设计要求1第2章 课程设计内容22.1课程设计主要内容22.2详细设计22.2.1设计过程22.2.2类的说明32.3程序流程52.4测试分析6第3章 课程设计总结7参考资料15第1章 课程设计的目的与要求1.1 课程设计目的JAVA程序设计是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是电子商务专业学生学习完JAVA程序设计课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。1.2 课程设计的实验环境硬件要求能运行Windows 9.X操作系统的微机系统。JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。1.3 课程设计的预备知识熟悉JAVA语言及ECLIPSE开发工具。1.4 课程设计要求按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JAVA程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。第2章 课程设计内容2.1课程设计主要内容日期是最基本的数据形式之一,因此很多语言或者数据库都提供了对日期的支持,或内置或提供这一类的库。Java描述日期和时间的方法使用传统的Date命令或者Java的一些子库。尽管这些关于日期的类有各种各样的处理日期的方法,这都是不够的。最终,名为java.text.DateFormat的类就是一种抽象的处理格式解释日期种类的独立于语言之外的方式。这种方式依靠那些惯例,法则,以及已知的语言要求的位置运行着。在java程序中不能采用地址计算的方法而通过指针访问内存单元,这样就大大减少了错误发生的可能性;而且java的数组并非用指针实现,这样就可以在检查中避免数组越界的发生。2.2详细设计2.2.1设计过程Date 类从Java 开发包(JDK) 1.0 就开始进化, 当时它只包含了几个取得或者设置一个日期数据的各个部分的方法, 比如说月, 日, 和年。这些方法现在遭到了批评并且已经被转移到了Calendar类里去了。这种改进旨在更好的处理日期数据的国际化格式. 就象在JDK 1.1中一样, Date 类实际上只是一个包裹类, 它包含的是一个长整型数据, 表示的是从GMT(格林尼治标准时间)1970年, 1 月 1日00:00:00这一刻之前或者是之后经历的毫秒数。(1)创建一个日期对象 让我们看一个使用系统的当前日期和时间创建一个日期对象并返回一个长整数的简单例子. 这个时间通常被称为Java 虚拟机(JVM)主机环境的系统时间. 例如:在星期六, 2001年9月29日, 下午大约是6:50的样子,上面的例子在系统输出设备上显示的结果是 1001803809710. 在这个例子中,值得注意的是我们使用了Date 构造函数创建一个日期对象,这个构造函数没有接受任何参数. 而这个构造函数在内部使用了System.currentTimeMillis() 方法来从系统获取日期。那么, 现在我们已经知道了如何获取从1970年1月1日开始经历的毫秒数了. 我们如何才能以一种用户明白的格式来显示这个日期呢? 在这里类java.text.SimpleDateFormat 和它的抽象基类 java.text.DateFormat 就派得上用场了. (2)日期数据的定制格式 假如我们希望定制日期数据的格式,例如:星期六-3月-4日-2002年. 下面的例子展示了如何完成这个工作: 只要通过向SimpleDateFormat 的构造函数传递格式字符串EEE-MMMM-dd-yyyy, 我们就能够指明自己想要的格式. 你应该可以看见, 格式字符串中的ASCII 字符告诉格式化函数下面显示日期数据的哪一个部分. EEEE是星期, MMMM是月, dd是日, yyyy是年. 字符的个数决定了日期是如何格式化的.传递EE-MM-dd-yy会显示 Sat-4-3-02. 请察看Sun 公司的Web 站点获取日期格式化选项的完整的指示. (3)将文本数据解析成日期对象 假设我们有一个文本字符串包含了一个格式化了的日期对象, 而我们希望解析这个字符串并从文本日期数据创建一个日期对象. 我们将再次以格式化字符串MM-dd-yyyy 调用SimpleDateFormat类, 但是这一次, 我们使用格式化解析而不是生成一个文本日期数据. 我们的例子, 显示在下面, 将解析文本字符串4-3-2002并创建一个值为001736000000 的日期对象. (4)使用标准的日期格式化过程 既然我们已经可以生成和解析定制的日期格式了, 让我们来看一看如何使用内建的格式化过程. 方法 DateFormat.getDateTimeInstance() 让我们得以用几种不同的方法获得标准的日期格式化过程. 在下面的例子中, 我们获取了四个内建的日期格式化过程. 它们包括一个短的, 中等的, 长的, 和完整的日期格式. 注意我们在对 getDateTimeInstance的每次调用中都传递了两个值. 第一个参数是日期风格, 而第二个参数是时间风格. 它们都是基本数据类型int(整型). 考虑到可读性, 我们使用了DateFormat 类提供的常量: SHORT, MEDIUM, LONG, 和 FULL. 要知道获取时间和日期格式化过程的更多的方法和选项。 2.2.2类的说明此部分主要说明了日历各部分功能,类包括哪些对象方法以及这些类的对象之间有什么样的关系。日历的整个程序有两个类,Calculator类中的类名是Calculator.它的功能是使用图形用户来实现日历的界面设计和运算功能以及一些科学运算方法,此类中具有设置日历界面布局和颜色的成员方法。(1). setup()是我定义的方法,是用来初始化程序的图形应用界面,由A5i13w()来调用。(2). windowClosing()是用来响应用户的关闭功能。(3). actionPerformed()是用来处理每个事件的响应的方法(4).countall()的意义是在最里层括号向最外层逐层把括号里的内容传递给counting()方法,并负责对括号本身是否符合数学语法要求进行检验。(5).Iscountnum()方法的作用程序的流程控制。class ConfigLine extends JPanel /数据配置-/ private TablePanel tablePanel = null; private Calendar showMonth = null; /当前显示的月份 private int startYear = 0; /【最小】显示年份 private int lastYear = 0; /【最大】显示年份 private int nowYear = 0; /当前年份 private int nowMonth = 0; /当前月份 /* * 计时器,RoundBox快速翻动 */ Timer timer = new Timer(true); /界面组件-/ private RoundBox yearBox = null; private RoundBox monthBox = null; private JLabel txtYear = new JLabel(年); private JLabel txtMonth = new JLabel(月);类名:RoundBox作用:数据配置继承的子类:Pallet类实现的接口:没有class RoundBox extends JPanel /数据配置-/ public int showMin = 0; /最小显示值 public int showMax = 0; /最大显示值 public int showNow = 0; /默认首显值 /界面组件/配置-/ public JLabel showing = new JLabel(, JLabel.RIGHT); private int showWidth = 35; private int showHeight = 15; public JButton bt_DOWN = new JButton(-); public JButton bt_UP = new JButton(+); /-构造方法-/* * 构造方法 */ RoundBox(int showNow, int showMin, int showMax) if(showNow = showMin & showNow = showMin & showNow = showMax) this.showNow = showNow; this.showMin = showMin; this.showMax = showMax; makeFace(); /界面制作 /-方法/函数-/* * 方法:界面制作 */ private void makeFace() Font txtFont = new Font(宋体, Font.PLAIN, 12); /自身配置-/ this.setLayout(new FlowLayout(1, 2, 1); this.setBackground(Pallet.configLineColor); this.setBorder(null); /showing 配置-/ showing.setText( + showNow); showing.setBorder(new LineBorder(Pallet.rbBorderColor, 1); showing.setForeground(Pallet.rbFontColor); showing.setPreferredSize(new Dimension(showWidth, showHeight); showing.setFont(txtFont); /bt_UP & bt_DOWN 配置-/ bt_UP.setBorder(new LineBorder(Pallet.rbBorderColor, 1); bt_UP.setBackground(Pallet.rbButtonColor); bt_UP.setForeground(Pallet.rbBtFontColor); bt_UP.setPreferredSize(new Dimension(15, 7); bt_UP.setFont(txtFont); bt_UP.setFocusable(false); bt_DOWN.setBorder(new LineBorder(Pallet.rbBorderColor, 1); bt_DOWN.setBackground(Pallet.rbButtonColor); bt_DOWN.setForeground(Pallet.rbBtFontColor); bt_DOWN.setPreferredSize(new Dimension(15, 7); bt_DOWN.setFont(txtFont); bt_DOWN.setFocusable(false); /总体布局-/ JPanel btPanel = new JPanel(new BorderLayout(0, 1); btPanel.setBorder(null); btPanel.setBackground(Pallet.configLineColor); btPanel.add(bt_UP, BorderLayout.NORTH); btPanel.add(bt_DOWN, BorderLayout.SOUTH); add(showing); add(btPanel); /-构造方法/函数-/ /* * 构造方法 * * param tablePanel TablePanel * param showMonth java.util.Calendar * param startYear int * param lastYear int */ ConfigLine(TablePanel tablePanel, Calendar showMonth, int startYear, int lastYear) this.tablePanel = tablePanel; this.showMonth = showMonth; this.startYear = startYear; this.lastYear = lastYear; nowYear = Integer.valueOf(new SimpleDateFormat(yyyy) .format(showMonth.getTime().intValue(); nowMonth = Integer.valueOf(new SimpleDateFormat(M) .format(showMonth.getTime().intValue(); yearBox = new RoundBox(nowYear, startYear, lastYear); monthBox = new RoundBox(nowMonth, 1, 12); makeFace(); /界面制作 addListener(); /添加事件监听 /-方法/函数-/ /* * 方法:界面制作 */ private void makeFace() Font txtFont = new Font(宋体, Font.PLAIN, 12); /自身配置-/ this.setBorder(null); this.setBackground(Pallet.configLineColor); this.setLayout(new FlowLayout(1, 7, 1); this.setPreferredSize(new Dimension(50, 19); /标签配置-/ txtYear.setForeground(Pallet.cfgTextColor); txtYear.setPreferredSize(new Dimension(14, 14); txtYear.setFont(txtFont); txtMonth.setForeground(Pallet.cfgTextColor); txtMonth.setPreferredSize(new Dimension(14, 14); txtMonth.setFont(txtFont); monthBox.setShowWidth(17); /总体布局-/ add(yearBox); add(txtYear); add(monthBox); add(txtMonth); /* * 方法:添加事件监听 */ private void addListener() /yearBox 事件配置-/ yearBox.bt_UP.addMouseListener(new MouseAdapter() /yearBox.bt_UP 按下 public void mousePressed(MouseEvent e) btPressed(yearBox, 1); /yearBox.bt_UP 弹起 public void mouseReleased(MouseEvent e) btReleased(yearBox, 1); nowYear = yearBox.showNow; tablePanel.setMonth(nowYear, nowMonth); ) 第3章 课程设计总结通过这两周的学习,使我对Java和Eclipse的运行有了更新的了解。java语言产生于C语言之后,是完全的面向对象的编程语言,充分吸取了C语言的优点,采用了程序员所
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑修缮展览活动方案设计
- 2025年广东省潮州市公安辅警招聘知识考试题(含答案)
- 山东塑胶玩具营销方案
- 彩泥培训课件
- 升学咨询宣传方案
- 太原建筑消防方案设计公司
- 常熟安全培训补贴课件
- 高分子5G射频系统研发与生产基地项目可行性研究报告模板-立项申报用
- 四川省广安市广安区等3地2025-2026学年高三上学期开学考试政治试题(含答案)
- 企业科技创新:新质生产力的核心动力
- 行测资料5000题题库
- 铁路退休人员乘车优惠政策
- 人工智能导论课件 第十三章 类脑智能
- 广西壮族自治区自然保护地 整合优化方案
- (高清版)DB5134∕T 15.1-2021 康养中心建设与管理规范 第1部分:建设要求
- 光伏发电合作合同协议书8篇
- 湖北省十一校2025届高三第二次数学联考及答案
- GB/T 20424-2025重有色金属精矿产品中有害元素的限量规范
- 医疗机构水电气设备维护流程
- 数据的形式与记录载体(教学设计)2024-2025学年清华版信息技术四年级上册
- 合规管理战略规划范文
评论
0/150
提交评论