java课程设计心得体会

2024-06-25

java课程设计心得体会(通用6篇)

篇1:java课程设计心得体会

Java课程设计心得体会

仿QQ交友网站是为了适应网络时代人们交友,交流等而创建的一个网站。通过本次课程设计,我对web开发有了更深刻的认识。

仿QQ交友网站的每一个模块实现的功能简单,JSP页面主要实现页面展示的功能,而servlet则负责页面请求的跳转以及对数据库数据的更新操作。

回顾起此课程设计,感慨颇多,从选题到定稿,从理论到实践,在这些日子里,我们付出了很多的辛苦和精力,但是学到很多很多的东西,不仅巩固了以前学过的知识,还学到了很多书本上没有的知识。通过这次课程设计,我懂得了理论与实际相结合的重要性,只有把学的理论知识与实践相结合,才能提高自己的实际动手能力和思考的能力。

其次,这次课程设计让我们系统学习数据库知识,这对我们的编程能力有很大的提高。更为重要的是,这次课程设计是我们小组6人一起合力完成的,让我们深刻体会到团队合作的重要性。当然程序中依然有很大的不足,望老师加以批评和指正。

篇2:java课程设计心得体会

通过四个月的学习我才真正发现要学的东西还很多,以前掌握的软件知识少的可怜,很多基本东西都不懂。在达内的培训这期间,通过老师的详细讲解,课堂上老师讲的基本上都能领会,并且在下午的上机练习中反复操作,加深印象。能熟练的操作软件项目开发。更加感到印象深刻的是,一直以来认为我对软件开发的兴趣更是越来越浓,甚至每天睡觉的时候脑袋都在代码,经过调整及时的改变了学习方法,翻书看以前学过的知识,又使我恢复了学习状态。

通过在达内四个多月的培训后,在达内科技的一次双选会上,我以熟练地技术被一家外企录取为一名定制班的学员,经过将近一个月的定制班的学习,顺利通过考核,在此我要对北京达内的全体老师说一声:老师,您辛苦了,谢谢您!

★ 参加java培训心得体会

★ 预备党员培训课心得体会精选

★ 心理培训课心得体会

★ java培训实习总结

★ 成都java培训心得

★ 教师说课培训心得体会

★ 微课制作培训心得体会

★ 学习java的心得体会

★ 智慧教育微课培训心得体会

篇3:Java程序设计课程实训设计

Java技术是计算机科学与技术相关专业培养的核心技能, 本课程设计是在《Java程序设计》课程上设置的, 在高职高专人才的培养中占有核心地位。它是巩固学生所学理论知识、培养学生动手能力并使理论与实际相结合的重要实践环节。

本课程设计的目的和任务, 是通过学生用Java语言设计一个完整的应用程序, 使学生综合应用所学知识完成软件的分析、设计、调试和总结, 提高学生对Java语言的综合应用能力和解决问题的能力。

二、实训教学方法手段和考核方法的设计

(1) 实训教学方法和手段

任课教师根据课程《网络程序设计Java》教学大纲中的重点内容, 给出相应的题目或项目, 指导学生完成任务。实训前必须制定好上机步骤, 弄清实训目的;要求学生掌握实训项目所需的知识、操作方法或步骤, 并写出详细的实训报告。

(2) 实训考核方法

通过设计答辩方式, 并结合学生的动手能力, 独立分析解决问题的能力和创新精神, 实训报告和答辩水平以及学习态度综合考评。

考核标准包括:

1. 设计与实训报告 (20%) ;

2. 程序的可用性, 实用性, 通用性, 可扩充性 (30%) ;

3. 学生的动手能力、综合解决问题能力、创新精神 (20%) ;

4. 答辩水平 (20%) 。

5. 态度和纪律10% (分为优、良、中、及格和不及格五档)

三、实训内容与要求

(1) java系统程序开发

资产管理系统、学生信息管理系统、电子商务系统、网络购物系统、网络聊天室、人事管理系统、选课系统、论文管理系统、新闻发布系统、考试管理系统、学生宿舍管理系统等。学生可以小组为单位任选其一完成。

(2) Applet程序开发

做一个广告屏, 显示一段文字, 如图1所示, 能够对文字的颜色、风格、字体、字号等修改。

要求:做成APPLET程序或APPLICATION程序;用AP-PLETVIEWER运行;能够在网页中运行。

(3) 游戏开发

1. 五子棋双人对弈

开发游戏性程序, 例如五子棋双人对弈程序、扫雷程序, 根据学生情况, 此部分为选做内容。

五子棋双人对弈程序要求:

(1) 按“重新开具”可以开始新的一局。

(2) 需提示当前该哪方下棋, 并提示已下棋子的信息。

(3) 一方赢时游戏结束。

2. 俄罗斯方块游戏。

说明:以上内容为模板内容, 其它题目也可自己设计, 但难度要相当。具体内容可根据实际由指导老师审定。

(4) 总体要求

1.对系统进行功能模块分析、控制模块分析正确;

2.系统设计要实用;

3. 编程简练, 可用, 功能全面, 具有较好的健壮性;

4. 说明书、流程图要清楚。

四、授课计划与学时安排

(1) 教师介绍本课程设计的目的、内容、要求、方法和安排。 (4学时)

(2) 学生消化信息、完成设计报告。 (6学时)

(3) 教师审查设计报告。通过审查的学生的设计报告, 然后调整确定实施方案。 (4学时)

(4) 学生完成课程设计的程序设计环节指导老师作必要的现场指导。 (20学时)

(5) 验收并简单考核。 (4学时)

(6) 撰写总结和实训报告。 (2学时)

五、课程设计指导教师

由主讲教师和实验指导教师共同承担。

六、课程设计地点

计算机中心机房或者学院专业机房

参考文献

篇4:java课程设计心得体会

与传统的教学方法相比,项目教学法将问题或疑难情景融入真实发生的典型性事件中,一个项目即为一个实际情境的描述,学生在完成项目的过程中寻找解决问题的办法,掌握相关知识,并提高自身的综合素质。在JAVA语言程序设计课程中应用项目教学法,可有效提高学生的实践能力,激发学生的学习兴趣。文章针对JAVA语言程序设计中项目教学法的应用进行讨论与分析。

关键词:JAVA;项目教学法;课程教学

【分类号】TP312.1-4

项目教学法是以项目驱动为主的新型教学方法,在JAVA程序设计课程中应用项目教学法无疑是一种新的尝试,通过一个个项目实现教学与研究的有机融合,学生在项目的驱动下探索知识,提高能力,而老师则通过项目驱动对教学方法做出调整与创新,提升自身的教学能力。

一、项目教学法的内涵

所谓项目教学法是通过设计、实施一系列完整的项目促使学生在完成项目的同时提高能力、掌握知识的教学过程。与传统的教学方法相比,项目教学法充分尊重了学生的主体作用,老师选择适当的项目,学生通过分组合作学习的形式共同完成整个项目,在教学过程中老师处理主导地位,而学生则是学习的主体。现阶段很多高等院校都开设了JAVA课程,其应用面广、社会需求量大,但是需要学生通过学习具备独立解决问题的能力,真正做到学以致用。而在JAVA课程教学中融入项目教学法,老师可根据教材内容、学生的实际情况设计与本门课程密切相关的项目,充分激发学生的学习兴趣,在完成项目的过程中培养学生的学习能力,提高其职业素养与专业水平。通过JAVA课程的学习,学生要全面掌握面向对象编程语言的基本思想,为后续其它面向对象的语言打下坚实的基础。

二、项目教学法的实施过程

具体而言,项目教学法在JAVA教学过程中的实施过程包括以下几个阶段:

(一)三阶段组织教学

软件专业通常每学期均会开设一门程序设计语言课程,为了避免学生在学习过程中感到枯燥,或者产生学以致用的紧迫感,项目教学过程中可以将整个教学过程分为基础知识、应用实践及课程设计三个阶段,每个阶段以项目教学为核心选择不同的教学方法,尽量减少理论课程的讲解,增加实践课程,遵循“回避难点、注重实践”的原则。在JAVA课程教学过程中,基础知识阶段的教學重点主要是JAVA基本语法及面向对象编程思想的讲解。采用多媒体演示,并结合案例教学法,案例尽量选择一些与生活比较贴近、实用性与趣味性较强的例子,比如超市销售模拟程序,这些案例演示可视作整个教学大项目中的预热项目。

应用实践阶段主要包括JAVAGUI窗体设计与数据库编程。该阶段编程代码量大大增加,老师要充分结合学生的认知规律,按照界面设计、事件编程、数据库操作等顺序由浅入深进行讲解。该阶段的主要项目任务包括登录窗口设计、系统主界面设计、数据库查询等各应用知识点。该阶段的主要任务是通过与后续课程设计相似功能模块的训练提高学生举一反三、融会贯通的能力。

课程设计阶段则主要是实训部分,其主要作用是检验教学效果,提高学生的动手能力。课程设计尽量做到一人一题,或者一组一题,每个学习小组设计不同的项目,由学生一起合作、共同完成。学生进行课程设计过程中,老师可以随时讲解,对项目要点进行总结,学生在老师的指导下完成课程设计。

(二)学徒制实践教学

在完成JAVA理论课程后的课程设计阶段,可以采用学徒制进行实践教学,即指导学生尝试软件项目开发训练。该阶段要求学生对项目的全部功能要求深入理解,进行编码、测试,并搭建实际的运行环境,该阶段的主要目的是对学生所学知识予以巩固,积累更多的开发经验,形成初步的独立解决问题的能力与自主学习的能力。课程设计是检验老师课堂教学效果的重要途径,可在校实验室或校内实训室模拟企业的开发环境进行项目开发。这个过程中,老师与学生均要进行角色转变,即采用“学徒制”的教学模式进行教学,老师为传统企业中的技术师傅,而学生则是初入岗位的学徒,老师指导学生完成项目制作。注意实施过程中要根据不同的阶段划分不同的教学环节,包括项目建模、模块讲解、辅导答疑、编码实现、项目总结等。其中项目建模需要老师进行详细讲解,帮助学生分析项目需要实现哪些功能,然后再将学生分成若干学习小组,合作完成编码,最终实现软件的功能。在这个过程中,学生可以随时向老师进行提问,老师负责答疑解惑,学生每解决一个问题,均将其记录下来,做好总结,培养学生掌握学习方法的能力。

(三)项目考核

项目教学法中项目考核是非常重要的环节,项目实施效果的优劣需要通过项目考核反馈给老师,不过项目教学法的验收侧重于项目的完成过程而非结果,因此,项目考核需要突出考核的全面性,包括学生的出勤、日常表现、作业、测试结果、项目完成质量、课程能力目标实现情况等;要制定明确、统一、可行的考核标准,提高考核的公平性与公正性;此外,考核形式要多样化,采用生生互评、老师点评等多种评价方法,以评价学生在实施项目过程中所展示出来的分析问题、解决问题的能力,考核形式也可以将传统试卷考核与项目考核互相结合。

三、结语

总之,项目教学法是以项目任务为基础,其更加侧重于学生技术应用能力与职业核心能力的培养,是一种新型的实践教学模式。在JAVA语言课程设计教学中采用项目教学法,可以提高学生的学习兴趣,教学过程中融入项目教学理念与学徒制实践教学模式,可以循序渐进的提高学生的编程能力,激发其编程兴趣,获得事半功倍的效果。由此可见,项目教学法真正体现出了“学以致用”的教学思想,后续要加强项目教学法的研究与实践,以培养出企业真正需要的技术型人才。

参考文献:

[1]张哲,陈桂生.在JAVA语言教学中实施项目驱动教学法的实践探索[J].教育与职业,2014(6):456

[2]宋英超,吕宜忠,沈斌. 运用项目教学法开展工学结合的研究与实践[J].科技创新导报,2014(5):231-232

[3]刘尧猛,陈军.注重创新人才培养的计算机实验教学研究[J].实验技术与管理,2014(5):78

[4]王进,陈建平.反思性教学在JAVA程序设计实验教学中的应用[J].实验技术与管理,2015(1):43

篇5:Java课程设计

1、文件档案管理

文件档案管理系统主要对外来文件、下发文件和需要抄送的文件进行统一管理。划分为以下三个模块:收文管理、发文管理、抄送文件。

1.收文文件增加、删除和修改,其字段有:收文编号、收件日期、文件标题、内容、发文单位、签发人

2.发文文件增加、删除和修改,其字段有:发文编号、发件日期、文件标题、内容、收文单位、发件人

3.抄送文件增加、删除和修改,其字段有:文件编号、发件日期、文件标题、内容、抄送单位、发件人

4.查询条件是发文类型(收文、发文还是抄送)、文件标题、内容进行模糊查询。

应用工具:jsp+struts+jdbc

题目等级:A2、运动员档案管理

运动员档案管理系统是对运动员的基本信息及参加比赛的情况进行管理维护。分为两个模块:运动员建档、比赛记录。

5.运动员建档增加、删除和修改,其字段有:学生编号、姓名、出生日期、性别、民族、政治面貌、主修项目、联系方式

6.对运动员的档案进行模糊查询,查询条件有:学生编号、学生姓名、性别、主修项目

7.对比赛记录进行增加、删除、修改,其字段有:学生编号、姓名、时间、地点、比赛名称、参加项目、成绩、名次

8.对比赛记录进行模糊查询,查询条件有:学生编号、学生姓名、比赛名称、参加项目、成绩 应用工具:jsp+struts+jdbc

题目等级:A3、信息发布系统

信息发布系统是将最新信息、以最快的方式展示给用户。提供信息的维护管理功能。信息主要字段:发布时间、标题、内容、有效期开始时间、结束时间、发布人、是否阅读,完成对信息的发布、修改、删除操作,对信息进行模糊查询,其查询条件为标题、内容、发布人

应用工具:jsp+struts+jdbc

题目等级:A4、通讯录管理

通讯录管理系统是方便用户管理自己的联系人,查找相应的联系方式。根据类别的不同对联系人进行分类管理。联系人信息有:姓名、性别、职务、办公电话、手机、宅电、电子邮件、通讯地址,完成对联系人的增加、删除、修改操作,提供对通讯录进行模糊查询,其条件为姓名、性别、职务、通讯地址字段

应用工具:jsp+struts+jdbc

题目等级:A5、备忘录管理

备忘录管理系统是记录每天需要做的事情,起到一个提醒的作用。提供对这些信息的维护功能。备忘录中的内容主要有:日期、标题、内容这三个数据项,完成对其的增加、删除、修改操作,并可以按日期和标题、内容进行模糊查询

应用工具:jsp+struts+jdbc

题目等级:A6、会议管理

会议管理系统是记录会议的基本信息,开完会后记录会议的讨论结果,进行备案,供以后查询使用。会议的基本信息:会议主题、会议类型(周会、报告会、考务会……)、会议状态(准备中、进行中、已结束三种)、会议时间、会议地址、参与者、会议主要内容,完成对其会议基本信息的增加、删除、修改操作,并要记录会议结果,会议记录结果主要记录的是会议讨论结果、领导签字两个数据项。应用工具:jsp+struts+jdbc

题目等级:A7、日程管理

日程管理要记录每天的工作日程安排,主要内容包括:记录时间、名称、内容、地点、日程的开始

和结束时间,完成对基本信息的增加、删除、修改操作,并对日程的信息进行查询,查询条件有:名称、内容

应用工具:jsp+struts+jdbc

题目等级:A8、日志管理

日志管理要记录每一天完成工作的情况,记录的信息有时间、上午工作记录、下午工作记录、记录人,完成对这些信息的维护,并对日期进行查询

应用工具:jsp+struts+jdbc

题目等级:A9、用户管理

为了方便网站管理者对用户进行身份确认,或者是用户购买以后进行配送等服务,必须要有用户管理系统。用户管理系统应该具有用户注册、用户登录、用户修改和用户注销等功能。

1. 用户注册(1)

2. 用户登录(1)

3. 用户信息修改(1)

4. 用户注销(1)

应用工具:jsp+struts+jdbc

题目等级:A10、数据查询

网上购物的一个优势是可以在商品中进行查询。

1. 生成查询记录集(1)

2. 分页显示功能(1)

3. 查看商品详细信息(1)

应用工具:jsp+struts+jdbc

题目等级:A11、购物车

1.添加到购物车(1)

2.查看购物车(1)

3.购物车操作(1)

4.结帐(1)

应用工具:jsp+struts+jdbc

题目等级:A

12.新闻管理系统

题目:当今社会是一个信息社会,人们通过信息了解社会情况,进行社会活动,而新闻作为企事业单位宣

传自己,发布信息的主要形式,而在网络新闻的宣传是一个新兴事务,并且发展很快,已经成为一个重要信息发布媒体。所以现要求你设计一个用于新闻管理的信息系统,实现新闻的编辑与发布。

功能要求:本系统要求可以完成新闻在线发布,在线编辑,新闻分类,图片新管理等功能,技术上要求

使用JSP技术。

题目等级:B

13.在线考试系统

题目:考试作为学员学习效果的检验的主要方式一直被采用,而且考试形式也有许多方式,如笔试,面

试等,在线测试作为一种新的考试形式,得到越来越快的发展。所以现要求你设计一个在线考试系统,实现在线测试。

功能能要求:实现在线测度,在线评测,随机出题,试题编辑等功能,技术上采用JSP+JavaBean实现。题目等级:A

14.网上书店系统

题目:图书是人们了解知识,掌握知识的主要手段,传统的书店都店面形式,人们需要去书店才能够购

买,花费大量的时间也不一定得到一本满意的书籍。而网上书店就是利用网络为人们提供一个足不出户就可以买到一本理想的书籍的方式。所以要求你设计一个网络书店系统,实现书籍的在线销售,在线阅读。

功能要求:实现图书在线阅览,在线选购,新书推荐等功能,技术上要求采用JSP +JavaBean实现。题目等级:A

15.学生学籍系统

题目:学生学籍管理是一个学校管理的重要组成部分,学生学籍管理也是最麻烦的一项管理,所以实现

学生学籍管理的信息化是一种简化管理的主要途径。现要求你设计一个实现学生学籍管理的系统,实现学生学籍管理的信息化。

功能要求:学生学籍注册,查询,更新,学生奖惩,学籍变动等功能。技术上要求采用JSP技术实现。题目等级:B

16.留言本

题目:留言本是网站中用于与管理员进行信息交流的主要方式,是网站中的一个重要功能之一,现要求

你设计一个留言本,实现在线留言。

功能要求:留言发布,留言回复,留言置顶,留言验证等功能,技术采用JSP实现。

题目等级:C

17.在线投票问卷管理系统

题目:在线调查是调查了解对某件事情人们反映的主要方式,是目前比要流行的一种调查方式。现要求

实现一个在线投票调查系统,并可以进行结果统计,结果评测等功能。

功能要求:在线投票,在线答卷,在线统计,在线评测等功能,技术上采用JSP实现。

题目等级:C

18.员工档案管理系统

题目:员工档案是一个企业人才建设管理的重要资源,好的员工档案管理,对提高员工工作积极性,提高企业效益的重要方式。所以要求设计一个员工档案管理系统,实现员工档案管理的信息化管理。

功能要求:员工档案注册,员工考核,员工调动等功能,技术上采用JSP+JavaBean实现。

题目等级:A

19.文本编辑器

题目:参照Windows记事本程序设计一个文本编程器,可以进行文本的格式编辑。

功能要求:要求有菜单,工具栏,文本编辑功能所需要的功能,技术上采用Java图形窗口技术实现。题目等级:C

20.计算器

题目:参照Windows计算器程序设计一个计算器,可以实现数学计算。

功能要求:要求功能上要与Windows计算器功能类似。

题目等级:C

21.HANNOI-塔

题目:运用多线程与图形接口技术设计一个HANNOI-塔演示程序,要求增加简易图形界面。功能要求:能够至少演示5级HANNOI-塔。

题目等级:B

22.挖雷游戏

题目:运用多线程程序与图形接口技术设计一个挖雷游戏程序,要求有简易的图形界面。

功能要求:功能上与Windows扫雷游戏类似。

题目等级:A

23.动态时钟

题目:运用Applet和多线程技术设计钟表程序,以实现当前时钟的显示。

功能要求:要求有表盘,可以调整时间。

题目等级:B

24.音乐播放器

题目:运用Applet技术设计一个可以播放音乐的播放器。

功能要求:可以播放音乐,可以添加乐曲等功能。

题目等级:C

25.实验室网上签到系统

题目:要求实现一个实验在线签到系统,学生可以在上实验时完成签到。

功能要求:课程设置,新建签到,学生签到列表,学生在线签到等功能。技术上采用JSP+JavaBean技

术实现。

题目等级:B

26.用户管理系统

题目:要求实现用户管理系统,可以实现用户注册,用户权限管理等功能。

功能要求:用户注册,用户极限分配,用户登录等功能。技术采用JSP技术实现。、题目等级:C

27.图书馆管理系统

题目:要求实现图书馆的在线管理,学生可以在线借书,在线阅览等功能。

功能要求:在线图书管理。在线阅读,在线借书,还书等功能。技术上采用JSP+JavaBean实现。题目等级:B

28.求职招聘系统

题目:网上求职是当今人才流动,人才引进的重要途径,但对于成百万的简历的管理,职位的发布的管理如果采用人工的方式会花费大量的人力、物力,但如果实现计算机网络化 管理就显得容易一些,所以现要求你设计一个求职招聘管理系统,实现人才交流的信息化处理。

功能要求:职位发布,在线投简,在线应聘等功能。技术上采用JSP+JavaBean技术实现。题目等级:B

29.仓库管理系统

题目:仓库管理是一个非常烦琐,但是很重要的工作。如果能够实现仓库管理的计算机处理,对于提

高工作效率,降低工作成本,能够起到非常重要的作用,所以现要求实现一个仓库管理系统,实现仓库的信息化管理。

功能要求:实现货物的出库,入库,库存统计,库存预警等功能。技术上采用JSP+JavaBean技术实现。题目等级:B

30企业网站管理系统

题目:网站对企业宣传工作的开展提供一个非常的好的效果,产生很好的效益,这就说明网站已经成为企业宣传自己的重要手段,网站管理的好坏直接影响这个网站的应用,所以现要求为某企业网站设计一个管理系统,实现网站的后台管理。

功能要求:产品发布,用户管理,信息发布等功能。技术上采用JSP+JavaBean技术实现。题目等级:A

31.流量统计系统

题目:网络流量是反映一个网站受关注度情况的重要表现,是网站调整版面信息的参考,访问流量高的网站证明其效益非常好,是一个非常理想的网站,但流量低的网站就需要进行信息的更新和版面的修改,以提高网站的访问量,这样网站流量的时时统计能够给网站管理员提供一个网站运行情况信息参考,为其更好的管理网站提供帮助。现要求你设计一个网站访问流量的统计系统,时时统计网站访问流量。

功能要求:显示在线人数,当前访问者IP,历史访问人数,最高流量时间等功能。技术上采用JSP技

术实现。

题目等级:C

其它可选题目

以上题目的等级全都为C,所选工具应为jsp+jdbc,都要完全相应的增、删、改、查等功能

(1)酒店管理信息系统

(2)客房管理信息系统

(3)药品管理信息系统

(4)学籍管理信息系统

(5)成绩管理信息系统

(6)宿舍管理信息系统

(7)图书管理信息系统

(8)财务处理信息系统

(9)固定资产核算信息系统

(10)工资管理信息系统

(11)材料管理信息系统

(12)成本管理信息系统

(13)房地产产权产籍管理信息系统的开发

(14)住宅小区物业管理信息系统的开发

(15)建设工程报价管理信息系统的开发

(16)建设工程预算系统的开发

(17)项目材料管理信息系统的开发

(18)工程材料采购管理信息系统的开发

(19)工程成本管理信息系统的开发

(20)机械设备租赁管理系统的开发

(21)工程图档管理信息系统的开发

(22)企业人力资源管理信息系统的开发

(23)企业职工培训管理信息系统的开发

(24)企业职工医疗保险信息系统的开发

篇6:Java课程设计报告

题目 学号 学生姓名

音乐播放器

201011621335 201011621329 200811621320

朱剑峰 薛文博 刘彬

联系方式 *** *** *** 所在专业 所在班级 指导教师 成绩 教师签字

计算机科学与技术

1103 刘思凤

课程设计时间:2013年6月1日 至 2013年6月25日 评语:

广东海洋大学本科生课程设计报告

目 录

摘要......................................................................................................................................2 1 绪论..............................................................................................................................3 1.1 1.2 1.3 1.4 2 2.1 2.2 3 3.1 3.2 课题背景..............................................................................................................3 课程设计目的......................................................................................................3 课程设计实验环境..............................................................................................3 课程设计要求......................................................................................................4 程序界面布局设计..............................................................................................4 功能分析..............................................................................................................4 系统功能结构图..................................................................................................5 模块功能设计......................................................................................................5 课程系统分析..............................................................................................................4

系统设计与实现..........................................................................................................5

3.2.1 “菜单栏”功能设计......................................................................................5 3.2.2 “动态音频播放进度显示”功能设计..........................................................9 3.2.3 “歌曲搜索”功能实现..................................................................................9 3.2.4 “歌曲播放/停止”功能实现......................................................................10 3.2.5 “列表展示”功能实现................................................................................11 4 系统优点与缺点........................................................................................................13 4.1 4.2 5 系统优点...............................................................................................................13 系统缺点...............................................................................................................13

系统开发过程............................................................................................................14 Myeclipse平台开发版本...............................................................................................14 NetBeans开发平台版本................................................................................................15 设计总结....................................................................................................................16

参考文献.............................................................................................................................17 附

录.................................................................................................................................18 关键代码..........................................................................................................................18

1、音乐解码函数(decodeMusic)........................................................................18

2、播放线程类(class PlayThread).....................................................................20

3、控制滚动条类(class RunSlider)...................................................................21

广东海洋大学本科生课程设计报告

摘要

JAVA是目前最流行的软件开发语言之一,称为网络上的“世界语”。JAVA适合开发基于多媒体、与平台无关、用面向对象的方法进行的基于Internet、Intranet、Extranet的Applet和应用程序。它具有简单高效、面向对象、不依赖于机器结构的特点,支持多线程、分布和并发机制。用JAVA开发的应用软件在可移植性、健壮性、安全性等方面大大优于已存在的其他编程语言。

JAVA是一门包含多种知识的学科,提供了丰富的类库,能最大限度地利用网络。JAVA可广泛用于面向对象的事件描述、处理面向对象的企业型的应用开发,还应用于Internet系统管理、Web页面设计、Internet可视化软件开发等方面。在学习的过程中我学到了许多以前没有学到的概念和新鲜资讯。运用这些知识可以完成老师交给我的课程设计任务。这次老师让我们自己拟订题目,给了我们很大的想象空间。我们自选了一个音乐播放器的课程设计题目。

本小组之所以选择做音乐播放器,全赖于本小组成员均对音乐有浓厚的兴趣,虽热衷于听音乐,但现在网上流传的音乐播放器还不能满足我们这些发烧友,像高清音乐等,这些高品质的作品若在现流行的播放器上运行,这只能做普通音乐文件“享用”。话说如此,因本小组开发能力有限,课程比较多,时间所限,以至暂且把音乐播放器开发到version0.9。主要功能还未能达到我们想要的境界。

小结一下,本小组的播放器所具备的功能有如下,添加音乐,删除音乐,搜索音乐,更换播放器皮肤,更改播放模式等。(详见2.2节)

本次设计的播放器在具备基本功能的基础上,还具有很强的扩展性,如歌词导入,可播放音乐类型的增加等等这些还未实现的地方我们都提供了许多接口,以便日后做修改或增加功能所用。

能够具备一个属于自己的播放器确实是一件非常高兴的事情,能够一边开发一边享受音乐的熏陶更是一件难得可贵的经历,愿此摘要能让读者感受得到笔者的兴奋与成功。

广东海洋大学本科生课程设计报告

音乐播放器

任务分工

系统设计与代码实现:朱剑峰 系统测试与维护:薛文博 需求与功能分析:刘彬 指导教师:刘思凤 绪论

1.1 课题背景

随着社会电子音乐文件的与日俱增,作为现在最流行的音乐文件*.mp3,*.wav文件的数量和规模也在比以往的任何时候要多,不论是电台DJ需要使用方便而有效地管理自己所使用的音乐文件,还是个人。在计算机日益普及的今天,若采用一套有效的音乐播放器。将自己所收藏的大量的音乐文件能随时随地的播放,这将方便于众用户听音乐的需求。通过使用本音乐播放器能为音乐爱好者带来意想不到的收获。

1.2 课程设计目的

《应用软件开发实习》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完《应用软件开发实习》课程后,进行的一次全面的综合训练,程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。

1.3 课程设计实验环境

程序运行在安装有windows操作系统的计算机上(台式机和笔记本),兼容windows 2K/XP/Vista/7/8 计算机硬件基本要求(仅供参考): 1.2.3.CPU:1G; 内存:512M.; 显卡:256M显存;

文件播放:需要安装有声卡、要求安装有语音库。

JAVA程序设计语言及相应的集成开发环境,Myeclipse和Netbeans开发工具。

广东海洋大学本科生课程设计报告

1.4 课程设计要求

按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JAVA程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。课程系统分析

2.1 程序界面布局设计

(1)创建一个JFrame类,类名为MyPlayer类。

(2)向对话框中添加JSlider控件、JList控件、JLabel控件、JJToggleButton控件、MenuBar菜单、JPanel容器、JToolBar容器以及JScrolPanel容器。

(3)设置所添加的控件的属性,以及使用Java的界面风格,本设计共使用了6种Java 的不同界面风格。

2.2 功能分析

MyPlayer播放器主要对常用Windows音频格式的文件实现播放控制:  主界面功能

 菜单栏功能

 添加音乐;

 添加音乐文件(即导入一个或多个音乐文件至列表当中);  添加音乐目录(即导入文件夹中所有的音乐文件至列表当中);  控制;

 随机播放;  顺序播放;  单曲循环;

 设置歌词(有待开发);  更换皮肤;

 默认、深海世界、迷人金属、香韵咖啡、骇客帝国、浪漫满屋(均为java的界面风格)

 关于;

广东海洋大学本科生课程设计报告

 帮助(记录作者的相关信息以及软件开发的日期);

 动态音频播放进度显示;

 正在播放歌曲在顶层的显示

 播放歌曲的时间长度的显示以及正在播放时间的长度的显示  滚动条随播放状态改变显示  歌曲搜索功能;

 根据关键字搜索对应的歌曲;  歌曲播放/停止功能;

 上一首;(播放上一首歌曲并根据播放模式来选择) 下一首;(播放下一首歌曲并根据播放模式来选择) 播放/停止;(播放或停止歌曲)

 双击播放/双击停止;(在列表中对指定歌曲的操作) 列表展示功能;

 隐藏/显示列表;  移除单个音乐文件;  移除所有音乐文件;

 显示当前歌曲数目,播放模式,皮肤情况; 系统设计与实现

3.1 系统功能结构图

MyPlayer播放器的功能结构图如图3-1。

主界面功能菜单栏功能动态音频播放进度显示歌曲搜索功能歌曲播放/停止功能列表展示功能

图3-1 主界面功能图

3.2 模块功能设计 3.2.1 “菜单栏”功能设计

“菜单栏”功能结构图如图3-2-1。

广东海洋大学本科生课程设计报告

菜单栏功能添加音乐添加音乐文件添加音乐目录控制更换皮肤关于随机播放顺序播放单曲循环种皮肤图3-2-1菜单栏功能结构

6帮助 3.2.1.1 “添加音乐”功能实现

当点击“添加歌曲/文件夹”选择“添加本地歌曲”或“添加本地歌曲文件夹”的时候,这时候会触发这两个JMenuItem事件,调用了open()函数(opendir()函数),即将选中的音乐文件(或文件夹内所有音乐文件)的信息(名称与路径)放入nameVector 和 urlVector 当中。并修改listCount的值,显示歌曲的总数,最后将nameVector的所有内容放入list列表当中。如图3-2-1-1。

图3-2-1-1(左上)选择操作,(左下)选择目录,(右下)列表显示

广东海洋大学本科生课程设计报告

3.2.1.2 “控制”功能实现

当选择“控制”功能的任意一项,则会使全局的chosenMethod整型变量的值根据选择的项赋对应的值,值域为1(随机播放)、2(顺序播放)、3(单曲循环)。因播放器的播放功能是一个while(true)的循环,每当播放歌曲时候,播放前会由函数chooseNextSong()根据chosenMethod的值来选择下一首歌是那一首。

如果值是1,则会由[0,listCount(列表歌曲总数)],获取随机数,再根据play()函数播放;如果值是2,则根据chosenIndex(当前播放歌曲号),直接加一,再根据play()函数播放;如果值是3,则chosenIndex(当前播放歌曲号)的值不再修改,再根据play()函数播放;如图3-2-1-2。

图3-2-1-2(左上)选择操作;(左下)随机播放后歌曲序号,(此处为后台显示),起始播放第1首歌,下一首歌为第295首歌曲;(右侧)为列表显示,指向对应歌曲,并且列表底下显示“随机播放”

3.2.1.3 “更换皮肤”功能实现

当选择“更换皮肤”功能的任意一项,则会触发对应事件的发生,调用函数loadskin1()或loadskin2()等等。此时会调用LookAndFeel的类,指定java包含的皮肤风格。Loadskin1()对应“默认”,loadskin2()对应“深海世界”等等。

选择皮肤后,主界面底下会显示对应的提示,如选择了“浪漫满屋”,地下就会显示 “皮肤:浪漫满屋”。如图3-2-1-3所示。

广东海洋大学本科生课程设计报告

图3-2-1-3

(左)选项显示,(右)换肤后主

界面情况。

3.2.1.4 “关于”功能实现

当选择“帮助”功能时,则弹出信息窗口,提示本软件的开发时间与开发人员相关信息。如图3-2-1-4所示。

图3-2-1-4

广东海洋大学本科生课程设计报告

3.2.2 “动态音频播放进度显示”功能设计

当歌曲播放正在播放时,则顶层“正在播放”处会显示歌曲的名称,当歌曲名称过长时候,超长部分会用省略号显示。

同时会根据歌曲的格式,得到歌曲的长度,并显示在歌曲的右侧的JLabel fileTime中;另外会另起一个线程RunSlider来控制计时功能,每1秒钟,滚动条左侧JLabel runningTime 会根据播放的时间来修改,滚动条PlayerSlider则会每秒钟根据runingTime的值来移动。如图3-2-2所示

图3-2-2

正在播放歌曲中的动态播放进度显示。

3.2.3 “歌曲搜索”功能实现

在搜索栏中输入关键字,在回车确认,系统就会调用seachMusic()来搜索与关键字吻合的歌曲,并将其放入临时的Vector tmpName当中,并显示其到list列表当中。如图3-2-3-1

在临时的列表中选择所需要播放的歌曲,双击播放,同时临时列表消失,回复原来的列表,即导入nameVector的数据到list当中。

当点击“X”按钮,若还在临时列表当中,则会清除临时列表并且恢复原来的列表;若已经恢复到临时列表,则搜索框中会返回提示“请输入搜索关键字...”。

图3-2-3-1(上)搜索“陈奕迅”的歌曲

(下)取消搜索后,搜索框的内容

广东海洋大学本科生课程设计报告

3.2.4 “歌曲播放/停止”功能实现

“歌曲播放/停止”功能结构图如图3-2-4。

歌曲播放/停止功能上一首下一首播放/停止双击播放/停止

图3-2-4 “歌曲播放/停止”功能结构

3.2.4.1 “上一首”“下一首”功能实现

当点击“上一首”的按钮时,会根据按钮事件,若chosenMethod(播放方式)的值为1(即随机播放)则系统会调用chooseNextSong()来随机选择歌曲号来播放下一首歌;若chosenMethod不为1,则会调用previousMusic(),对chosenIndex(当前播放歌曲号)减一,再调用play()函数播放上一首歌曲。

当点击“下一首”的按钮时,会根据按钮事件,若chosenMethod(播放方式)的值为1(即随机播放)则系统会调用chooseNextSong()来随机选择歌曲号来播放下一首歌;若chosenMethod不为1,则会调用nextMusic(),对chosenIndex(当前播放歌曲号)加1,再调用play()函数播放下一首歌曲。

3.2.4.2 “播放/停止”“双击播放/停止”功能实现

当点击“播放/停止”的按钮时候,若点击了“播放”,则会显示“停止”,同时会对列表正在选中的歌曲进行播放。同时会触发“动态音频播放进度显示”功能(3.2.2节所介绍),更改或增加播放信息;

若点击了“停止”,则会显示“播放”,同时会对当前播放的歌曲进行停止,同样会触发“动态音频播放进度显示”功能,清除对应的显示。如图3-2-4-2

广东海洋大学本科生课程设计报告

图3-2-4-2(左)“播放”

(右)“停止”

3.2.5 “列表展示”功能实现

“列表展示”功能结构图如图3-2-5。

列表展示功能隐藏/显示列表移除音乐文件显示列表信息

图3-2-5 “列表展示”功能结构

3.2.5.1 “隐藏/显示列表”功能实现

当点击“显示列表/隐藏列表”的按钮时候,若点击了“显示列表”,则会显示“隐藏列表”,同时触发该事件,将原来的JFrame大框架的长度减少440个单位;

若点击了“隐藏列表”,则会显示“显示列表”,同时触发该事件,将原来的JFrame大框架的长度增加440个单位。

隐藏与显示列表这一功能虽然非常简单,但其重要性不可忽视,对于现在许多用户对音乐播放器的要求,就如自己的手机或着MP3一样,小巧、灵活、精致,至此这一项功能对于本小组一开始的设计就算是一个亮点。如图3-2-5-1所示。

广东海洋大学本科生课程设计报告

图3-2-5-1(左)隐藏列表,(右)显示列表

3.2.5.2 “移除歌曲”功能文件实现

当用鼠标对着列表的音乐文件右键的时候,会弹出两个选项“移除歌曲/移除所有歌曲”。

当选择“移除歌曲”,则对所选择的音乐文件从列表中移除,即事件的触发调用了deleteSingle()函数,将对应的项从列表中移除,从nameVector中移除,从urlVector中移除;

同理当选择“移除所有歌曲”的时候,事件触发调用deleteAll()函数,将列表清空,将nameVector中的元素清除。

以上两者运行过后均会更新主界面底层“歌曲数目”,并且停止正在播放的歌曲。

图3-2-5-2右键列表后出现的选择项

广东海洋大学本科生课程设计报告

3.2.5.3 “显示列表信息”功能实现

由“添加音乐”功能(3.2.1.1节)调用的open()、opendir()函数,会将保存在nameVector中的内容导入列表当中。当双击列表中的歌曲的时候,如果歌曲正在播放则会停止,如果播放器没有进行播放,则双击后就进行播放。

当我们对着列表右键时,则会弹出列表,“移除歌曲/移除所有歌曲”,详见(3.2.5.2节)系统优点与缺点

4.1 系统优点

1、windows界面风格可选择性,如上如所述,本音乐播放器具有6种皮肤可以更换。这大大满足了一个娱乐性的软件的需要,并且皮肤起名也符合用户的感官需求,像“深海世界”、“浪漫满屋”这些贴切而休闲的词汇更能吸引用户对播放器的使用。

2、播放方式可选择性,对于喜欢听音乐的用户,会根据自己的需要选择一定的顺序来听音乐。

3、列表隐藏的功能,符合大众播放器的功能,将播放器的界面弄得小巧而精致,即使隐藏了列表也不妨碍主要的播放器功能。

4、搜索功能,随着网络的发达,音乐歌曲随处下载,人均播放列表的歌曲数目数以百计,这时候搜索功能就显得十分重要。本播放器根据关键字可以对列表进行搜索,并可以显示搜索后的列表,同时临时的列表不会缩减播放器功能。

4.2 系统缺点

1、本系统主要代码均在一个文件当中MyPlayer.java当中,由于本小组是用netBeans7.2.1开发平台开发的,对开发平台尚未了解,故暂且没有将代码弄得更具有可读性。

2、本播放器还缺少暂停功能,在开发的最后版本(Music_Player0.9fornetBeans)还在改进当中。期待1.0版本对此功能的实现。

3、本播放器对音乐文件的选择,仅仅.mp3文件以及.wav文件可播放。针对decodeMusic()解码函数的改善,尚未能解决。

4、本播放器缺少歌词设置、显示功能。由于本小组对播放器的主界面还未想到一个满意的设计,所以歌词的实现暂且没有实现,待界面设计得灵活的时候,再添加歌词的功能。

广东海洋大学本科生课程设计报告 系统开发过程

Myeclipse平台开发版本

Version 0.1

1、菜单栏

*文件包括“打开文件”“打开目录”“退出程序” *控制-随机播放-顺序播放-单曲循环-设置歌词 *更换皮肤

*帮助-关于

2、上一首、下一首、停止/播放、隐藏列表4个button

3、帮助显示-关于 消息框。

Version0.2

1、能打开文件,显示文件名称在下面的框内,多个文件显示在框内!

2、文件-退出程序

实现

3、能够显示列表与隐藏列表

Version0.3

1、双击能够播放

2、暂停 跟 继续

新增

1、双击整个title 换成为歌曲名称 问题

1、隐藏列表/显示列表 list 会缩水

2、filedialog 没有选择任何文件 直接关闭会出现错误!(verson0.4中已解决)

3、双击空的列表也可以开始(version 0.6for netBeans 已经解决)

Version0.31(Version0.3崩溃)

Version0.4

1、上一首,下一首 能够在列表中显示

2、上一首 下一首播放功能 新增:

1、打开文件可以多选

2、打开目录 可以把整个目录里面的MP3、wav文件导出在列表中。

问题:

1、双击 第一次 是开始,第二次 是停止(相对于同一首歌,相对于其它歌会停止,也不播放)(version 0.6for netBeans 已经解决)

2、播放完一首歌后,不能自动往下播放。(version 0.5forneatBeans 已经解决)

歌曲不能删除(version 0.6for netBeans 已经解决)修改:

1、“打开文件”“打开目录”分别换成 添加本地歌曲,添加本地歌曲文件夹

Version0.5

1、皮肤(简单的颜色或者图片)

2、更换皮肤-可供选择

修改:

1、项目已经转至netbeans平台上开发,并明明为Music_Player0.5forneatBeans 新增:

1、快捷键 添加歌曲/文件夹 添加了快捷键 和 关于 加了快捷键

广东海洋大学本科生课程设计报告

Version 0.6

1、播放模式

2、删除功能 问题:

1、播放列表可以拉出来,播放到名字比较长的歌曲,list会变宽!(已经完全解决,删

除正在播放的label)

2、播放按钮,双击 未解决(version0.6已经修复),上一首

下一首 置顶时候,以及

随机播放时候 下一首上一首序号问题!(version0.6已经修复)。

3、菜单项 选中后,没有特别标志(解决办法

1、换另外一种菜单项

2、选中菜单项后 字

体等改变)

selected 方法!是改变修改字体的!(version0.7添加1中 解决)

4、删除 单首歌,序号不能改变(version0.7已经修复)NetBeans开发平台版本

Version0.7 for netbeans

1、添加底下: 歌曲数目、播放模式、皮肤的显示

2、歌曲名前面有序号

3、音乐时间,以及滚动条

4、”正在播放“显示的问题 Version0.8 for netbeans

1、添加搜索模块

2、添加搜索功能

3、搜索功能->搜索列表播放功能 Version0.9fornetbeans

1、修改播放器软件运行时的图标(将java的图标换成“射手”图标)

广东海洋大学本科生课程设计报告 设计总结

JAVA是目前最流行的软件开发语言之一,称为网络上的“世界语”。JAVA适合开发基于多媒体、与平台无关、用面向对象的方法进行的基于Internet、Intranet、Extranet的Applet和应用程序。它具有简单高效、面向对象、不依赖于机器结构的特点,支持多线程、分布和并发机制。用JAVA开发的应用软件在可移植性、健壮性、安全性等方面大大优于已存在的其他编程语言。

JAVA是一门包含多种知识的学科,提供了丰富的类库,能最大限度地利用网络。JAVA可广泛用于面向对象的事件描述、处理面向对象的企业型的应用开发,还应用于Internet系统管理、Web页面设计、Internet可视化软件开发等方面。在学习的过程中我学到了许多以前没有学到的概念和新鲜资讯。运用这些知识可以完成老师交给我的课程设计任务。这次老师让我们自己拟订题目,给了我们很大的想象空间。我们自选了一个音乐播放器的课程设计题目。

课程设计的过程虽然是艰难而辛苦的,但是我却从中感到了快乐与欣慰。快乐是因为我以前对于JAVA的知识可以说是孤陋寡闻,但是通过这次课程设计我使自己的知识更加的丰富了,加大了自己的知识面。让自己的实力扩大了。所以我感到非常的快乐。欣慰是因为看着自己做出的课程设计得到了老师的认同,取得了成功。这次课程设计的整体过程是充实而满足的。

广东海洋大学本科生课程设计报告

参考文献

[1](美)埃克尔(Eckel , B.)著,《Java编程思想》(第四版)陈昊鹏译.一北京: 机械工业出版社,2007.6

[2] 刁成嘉 著,《UML系统建模与分析设计》,机械工业出版社,2007.6

[3] 朱喜福 著,《Java程序设计》(第2版),清华大学出版社, 2009.10

[4] 辛运帏 著,《Java语言程序设计》(第1版),人民邮电出版社, 2009.10

[5] 叶核亚 著,《Java程序设计实用教程》(第3版),电子工业出版社,2010.2

[6] 耿祥义,张跃平编著,《Java面向对象程序设计》.一北京:清华大学出版社,2010.1

广东海洋大学本科生课程设计报告

关键代码

1、音乐解码函数(decodeMusic)

解析:由于java applet播放声音,对应的格式只有一些原始格式如.au、.Wav、.Midi、.rfm格式,因此一下的解码函数就非常必要了,即将MP3等其它格式文件的音频等格式修改成系统能够实现的格式,并写入内存由此来实现播放功能。详细实现请阅读如下代码。

public void decodeMusic(AudioInputStream in){// 开始解码 MP3

AudioFormat format = in.getFormat();

AudioFormat decodedFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,// 音频编码技术

format.getSampleRate(),// 每秒的样本数

16,// 每个样本中的位数

format.getChannels(),// 声道数(单声道 1 个,立体声 2 个,等等)

format.getChannels()* 2,// 每帧中的字节数

format.getSampleRate(), false);// 每秒的帧数和是否以 big-endian // 字节顺序存储单个样本中的数据

// 然后重新获取一个新的输入流,AudioInputStream decodeIn = AudioSystem.getAudioInputStream(decodedFormat, in);/**

* 源数据行是可以写入数据的数据行。它充当其混频器的源。应用程序将音频字节写入源数据行,这样可处理字节缓冲并将它们传递给混频器。

* 混频器可以将这些样本与取自其他源的样本混合起来,然后将该混合物传递到输出端口之类的目标(它可表示声卡上的音频输出设备)。

* */ SourceDataLine sdl = null;// 然后

DataLine.Info info = new DataLine.Info(SourceDataLine.class,decodedFormat);try {

/**

* AudioSystem :类充当取样音频系统资源的入口点。此类允许查询和访问安装在系统上的混频器

* **/

sdl =(SourceDataLine)AudioSystem.getLine(info);

sdl.open(decodedFormat);

} catch(Exception e){

广东海洋大学本科生课程设计报告

e.printStackTrace();} /** 指示该行是否支持特定类型的控件。*/ if(sdl.isControlSupported(FloatControl.Type.PAN)){

// FloatControl 对象提供对浮点值范围的控制

FloatControl pan =(FloatControl)sdl

.getControl(FloatControl.Type.PAN);

if(curPosition == Position.RIGHT){

pan.setValue(1.0f);

} else if(curPosition == Position.LEFT){

pan.setValue(-1.0f);

} }

sdl.start();int nBytesRead = 0;byte[] abData = new byte[EXTERANAL_BUFFER_SIZE];try {

while(nBytesRead!=-1){

// 文件流的读写

nBytesRead = decodeIn.read(abData, 0, abData.length);

if(nBytesRead >= 0){

sdl.write(abData, 0, nBytesRead);

}

} } catch(Exception e){

e.printStackTrace();

return;} finally {

// 通过在清空数据行的内部缓冲区之前继续数据 I/O,排空数据行中的列队数据。

sdl.drain();

sdl.close();}

}

广东海洋大学本科生课程设计报告

2、播放线程类(class PlayThread)

解析:本播放器只使用一个线程来实现歌曲播放的功能,若用户要更换歌曲或者停止音乐,则对线程重建,即杀死原线程再建立新的线程,其实现的效果还是跟原来线程一样。同时此线程包含了许多子功能,如更改播放模式,对“上一首”“下一首”显示“正在播放”等功能均在此线程上实现。详细内容请阅读如下代码。

class PlayThread extends Thread{

public void run(){

while(true){

try {

setInitShowing();//初始化滚动条以及计时label 的值

isStop = true;//标志状态,说明是停止了

filename =(String)nameVector.get(chosenIndex).toString();//取chosenIndex对应的歌曲名称

filepath =(String)urlVector.get(chosenIndex).toString();////取chosenIndex对应的歌曲路径

System.out.println(“我在播放:”+chosenIndex+“ ”+filename);//后台输出检测

/*设置“正在播放”的值,只输出前23个字符,以免超出长度,后面补...*/

String showName = null;

if(filename.length()>23){

showName = filename.substring(0, 23)+ “..”;

}else{

showName = filename;

}

showTileOfMusic.setText(“正在播放:”+showName);

File file = new File(filepath);

setTitle(filename);

list.setSelectedValue(nameVector.get(chosenIndex), true);

listIndex = chosenIndex;

stporplySongButton.setText(“停止”);//修改 停止/播放button的状态值

AudioInputStream in = AudioSystem.getAudioInputStream(file);//去音乐文件

AudioFileFormat aff = AudioSystem.getAudioFileFormat(file);//去音乐文件的格式(为了得到歌曲长度)

musicLength = aff.getFrameLength()/aff.getFormat().getFrameRate();//取音乐文件的长度

System.out.println(“我有那么长:”+musicLength);//后台显示,用于检测

setShowingTime(musicLength,fileTime);//显示总长度到fileTime label中

PlayerSlider.setMaximum((int)musicLength);//并且设置滚动条的最大值

isStop = false;//设置正在播放状态

hasStop = false;//设置正在播放状态

decodeMusic(in);//解码并播放

isStop = true;//播放完毕后设置回非播放状态

hasStop = true;

广东海洋大学本科生课程设计报告

chooseNextSong();//选择下一首歌返回while

} catch(Exception e){

//e.printStackTrace();

System.out.println(“刚才那首歌出错了!”);//如果出现错误,则显示直接跳至下一首歌

nextMusic();

}

}

}

}

3、控制滚动条类(class RunSlider)

解析:此类虽然简短,但其能动态实现滚动条以及播放时间的运动。其中setShowingTime()方法提供的接口十分灵活,能够对不同空间进行时间的控制,本播放器只对播放时间的两个JLabel实现了此功能,这大大提高了本播放器的可扩展性。详细内容请阅读如下代码。

class RunSlider extends Thread{

public void run(){

try {

musicCouter = 0;

while(true){

Thread.sleep(1000);//每秒钟滚动一次

musicCouter++;

PlayerSlider.setValue((int)musicCouter);

setShowingTime(musicCouter, runingTime);//转换时间并显示回去runingTime label

}

} catch(InterruptedException ex){

Logger.getLogger(MyPlayer.class.getName()).log(Level.SEVERE, null, ex);

}

}

上一篇:变配电安装合同下一篇:以成功为话题的作文:成功需要磨练