JK音乐播放器-课程设计报告_第1页
JK音乐播放器-课程设计报告_第2页
JK音乐播放器-课程设计报告_第3页
JK音乐播放器-课程设计报告_第4页
JK音乐播放器-课程设计报告_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、广东技术师范学院天河学院广东技术师范学院天河学院Java 程序设计课程设计报告题题 目:目:音乐播放器设设 计计 者者:陈东伟 蔡玮钺 李旺明专业班级:专业班级:本计科 131学学 号:号:201304154310520130415431022013041543117指导教师:指导教师:孔令美所属系部:所属系部:计算机科学与技术系2014 年 12 月 31 日目录目录摘摘 要要.31 1 设计内容设计内容.42 2 分析与设计分析与设计 .42.1 功能模块划分.42.2 系统中各个操作的描述.53 3 总体设计总体设计.104 4 源代码源代码.115 5 总结总结.18参考文献参考文献.

2、18摘摘 要要在信息,技术高速发展的今天,多媒体技术也越来越受到人们的重视。近年来听音乐已成为人们生活的一部分,与此同时,音乐播放器也日趋普及,这大大丰富了业余生活,也缓解了工作压力。文章对目前使用较多的音乐播放器作出较详细的比较。通过阅读多张文献,分析了一些音乐播放器的功能,并考虑了怎样能实现支持更多格式的音乐文件,怎样能满足使用者对播放器的需求。这个音乐播放器是一个基于 Java Application 来实现的音乐播放器的设计。并对系统开发中涉及到的关键技术作了探讨,简要分析介绍了 Java 技术和 Application 的工作原理,最后说明系统需要实现的功能。 关键词:关键词:Jav

3、a 软件;Application;音频播放器 1 1 设计内容设计内容能够实现简单的音乐播放器功能,如:播放,停止,上一曲,下一曲,循环播放等等。 一个简单的基于 java 语言的音乐播放器,界面按钮:播放,停止,上一曲,下一曲,循环播放;播放列表:能够查看到里面所包含的歌曲目录。当播放歌曲时,可以查看当前播放音乐的相关属性,如:歌曲名;歌词表:显示所播放歌曲的歌词。2 2 分析与设计分析与设计2.12.1 功能模块划分功能模块划分(1)音乐播放器界面音乐播放器界面主要包括:播放,停止,上一曲,下一曲,循环播放等按键,播放列表和歌词表,如下图所示:图 2-1 音乐播放器界面(2)播放列表当在用

4、户单击播放列表的选项按钮,打开播放列表,在此界面中可选择歌曲。如下图所示:图 2-2 播放列表(3)歌词表用户选择歌曲后,显示出歌曲的歌词,如下图所示:图 2-3 歌词表2.22.2 系统中各个操作的描述系统中各个操作的描述(1)播放当单击操作界面中的“播放”按钮时,所选歌曲开始播放,并显示正在播放。如下面截图所示:图 2-6播放(2)停止当单击操作界面中的“停止”按钮时,停止播放歌曲,并显示已停止播放。如下面截图所示:图 2-7 停止(3)上一曲当单击收入界面中的“上一曲”按钮时,停止原来所播放的歌曲,播放上一首歌曲,并显示已经选择上一曲。如下面截图所示:图 2-8上一曲(4)下一曲当单击操

5、作界面中的“下一曲”按钮时,停止原来所播放的歌曲,播放下一首歌曲,并显示已经选择下一曲。如下面截图所示:图 2-9下一曲(5)循环播放当单击支出界面中的“循环播放”按钮时,所播放的歌曲将一直播放,直到用户进行其他操作,并显示正在循环播放。如下面截图所示:图 2-10循环播放3 3 总体设计总体设计整个设计包含了简单的播放器界面,根据用户需求设置了五个简单的实现基本操作的按钮,分别是:播放,停止,上一曲,下一曲,循环播放;根据具体的操作还包含了一个歌曲列表,用来选择播放的歌曲;一个显示歌曲歌词的显示框,显示所播放歌曲的歌词。该音乐播放器设置了一个简单的播放界面,运行程序时打开播放界面,用户可以根

6、据自己的需求播放想听的歌曲,用户可以在音乐播放窗口里面进行相关的音乐播放的控制操作。 当用户进入音乐播放窗口时,该窗口有几个快捷控制的控键:播放:播放所选歌曲,停止:停止播放所选的歌曲,上一曲:播放上一首歌曲,下一曲:播放下一首歌曲,循环播放:,所播放的歌曲将一直播放,直到用户进行其他操作。由于设计的能力不足,歌曲的添加和歌曲的添加需要在代码中的相应位置自行添加,否则播放器只能进行内置歌曲,歌词的播放与显示。4 4 源代码源代码package MusicPlayer;import java.awt.*;import java.awt.event.*;import javax.swing.*;i

7、mport .*;import java.applet.*;import java.io.*;import java.applet.AudioClip;public class MusicPlayer extends Applet implements ActionListener public static void main(String args) MusicPlayer that = new MusicPlayer();JFrame frame;JLabel playL, stopL, nextL, lastL, chooseL, loopL, lrcL;/ 页面上的 Jlabel 组

8、件JTextArea ta;/ 界面上显示歌词的组件JComboBox choose;/ 界面上选择歌曲名称的组件JFileChooser mc;JButton play, stop, next, last, loop, open;/ 页面上的按钮组件/ 在歌曲列表中预设三首歌String musicList = newyear.mid,风中有朵雨做的云.wav,浮夸.wav,宫崎骏 - 天空之城.wav ;URL music1, music2, music3,music4;AudioClip sound1, sound2, sound3,sound4;AudioClip chooseClip

9、;boolean looping;/ 是否循环播放public MusicPlayer() frame = new JFrame(JK 音乐播放器);ta = new JTextArea();/ 界面上显示歌词的组件mc = new JFileChooser();/ 在歌曲列表中预设三首歌URL music1 = getClass().getResource(musicList0);URL music2 = getClass().getResource(musicList1);URL music3 = getClass().getResource(musicList2);URL music4

10、= getClass().getResource(musicList3);sound1 = newAudioClip(music1);/ 将歌曲资源封装为 AudioClip 对象sound2 = newAudioClip(music2);sound3 = newAudioClip(music3);sound4 = newAudioClip(music4);chooseClip = sound2;looping = false;/ 是否循环播放ta.setEditable(false);ta.setBackground(Color.cyan);/ 设置显示歌词的 ta 组件的背景色Font f

11、ont = new Font(TimeNew roman, Font.PLAIN, 14);ta.setFont(font);/ 设置显示歌词的字体choose = new JComboBox(musicList);/ 将歌曲名放入 JcomboBox 组件中choose.setEditable(false);choose.setSelectedIndex(0);/ 初始选择组合列表中第 0 首歌choose.addActionListener(this);/ 为组合列表添加侦听事件JScrollPane jsp = new JScrollPane(ta,JScrollPane.VERTICA

12、L_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);playL = new JLabel(播放);playL.setForeground(Color.blue);stopL = new JLabel(停止);stopL.setForeground(Color.blue);lastL = new JLabel(上一曲);lastL.setForeground(Color.blue);nextL = new JLabel(下一曲);nextL.setForeground(Color.blue);loopL = new

13、JLabel(循环播放);loopL.setForeground(Color.blue);chooseL = new JLabel(选择播放文件);chooseL.setForeground(Color.blue);lrcL = new JLabel(歌词:);lrcL.setForeground(Color.blue);last = new JButton(new ImageIcon(previous.gif);/ 上一曲按钮last.addActionListener(this);/ 添加侦听play = new JButton(new ImageIcon(play.gif);/ 播放按钮

14、play.addActionListener(this);/ 添加侦听stop = new JButton(new ImageIcon(stop.gif);/ 停止按钮stop.addActionListener(this);/ 添加侦听next = new JButton(new ImageIcon(next.gif);/ 下一曲按钮next.addActionListener(this);/ 添加侦听loop = new JButton(new ImageIcon(loop.gif);/ 循环播放按钮loop.addActionListener(this);/ 添加侦听open = new

15、 JButton(new ImageIcon(open.gif);/ 添加新歌曲按钮open.addActionListener(this);/ 添加侦听Container cp = frame.getContentPane();cp.setLayout(null);/ 未使用布局管理器/ 添加全部组件到 frame 内容窗格中cp.add(play);cp.add(stop);cp.add(loopL);cp.add(next);cp.add(last);cp.add(choose);cp.add(playL);cp.add(stopL);cp.add(nextL);cp.add(lastL

16、);cp.add(loop);cp.add(jsp);cp.add(chooseL);cp.add(lrcL);cp.add(open);/ 设置每个组件的相对位置坐标和大小last.setBounds(10, 400, 95, 95);lastL.setBounds(40, 490, 120, 30);play.setBounds(105, 400, 95, 95);playL.setBounds(135, 495, 120, 20);stop.setBounds(200, 400, 95, 95);stopL.setBounds(235, 495, 120, 20);next.setBou

17、nds(295, 400, 95, 95);nextL.setBounds(320, 495, 120, 20);choose.setBounds(45, 40, 250, 30);chooseL.setBounds(115, 20, 150, 20);loop.setBounds(310, 15, 70, 40);loopL.setBounds(320, 55, 60, 20);jsp.setBounds(10, 90, 380, 300);lrcL.setBounds(10, 70, 70, 20);open.setBounds(0, 0, 60, 20);frame.setSize(40

18、5, 550);/ 设置窗口大小frame.setVisible(true);frame.setResizable(false);/.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public void actionPerformed(ActionEvent event) if (choose.getSelectedItem() = newyear.mid)/ 从歌曲列表中选择了风中有朵雨做的云.wav/ 添加对应的歌词ta.setText(新年好呀,新年好呀,祝贺大家新年好n +我们唱歌 我们跳舞, 祝贺大家新年好n+新年好呀 新年

19、好呀,祝贺大家新年好n+ 我们唱歌,我们跳舞, 祝贺大家新年好n);chooseClip = sound1;/ 指定 AudioClip 对象为 sound1chooseClip.stop();/ 停止播放loop.setEnabled(true);/ 循环播放设为 trueif (choose.getSelectedItem() = 风中有朵雨做的云.wav)/ 选择了这首歌/ 添加歌词ta.setText(风中有朵雨做的云,一朵雨做的云n+云的心里全都是雨,滴滴全都是你n+风中有朵雨做的云,一朵雨做的云n+云在风里伤透了心,不知又将吹向那儿去n+吹啊吹吹落花满地n+找不到一丝丝怜惜,飘啊飘

20、飘过千万里n+苦苦守候你的归期n+每当天空又下起了雨,风中有朵雨做的云n+每当心中又想起了你,风中有朵雨做的云);chooseClip = sound2;/ 指定 AudioClip 对象为 sound1chooseClip.stop();/ 停止播放loop.setEnabled(true);/ 循环播放设为 trueif (choose.getSelectedItem() = 浮夸.wav)/ 选择了这首歌/ 添加歌词ta.setText(有人问我我就会讲 但是无人来n+我期待 到无奈 有话要讲n+得不到装载n+我的心情犹豫像樽盖 等被揭开n+咀巴却在养青苔n+人潮内愈文静 愈变得不受理睬

21、n+自己要搞出意外n+像突然 地高歌 n+任何地方也像开四面台n+着最闪的衫 扮十分感慨n+有人来拍照要记住插袋n+你当我是浮夸吧 夸张只因我很怕 n+似木头 似石头的话 得到注意吗n+其实怕被忘记 至放大来演吧n+很不安 怎去优雅 n+世上还赞颂沉默吗 n+不够爆炸 怎麽有话题 n+让我夸做大娱乐家n+那年十八 母校舞会 站着如喽罗n+那时候 我含泪发誓各位 必须看到我n+在世间 平凡又普通的路太多n+屋村你住哪一座 n+情爱中 工作中 受过的忽视太多n+自尊已饱经跌堕 重视能治肚饿 n+末曾获得过便知我为何 大动作很多n+犯下这些错 搏人们看看我 算病态麽n+幸运儿并不多 若然未当过就知我

22、为何n+用十倍苦心 做突出一个n+正常人够我富议论性么n+你 叫我做浮夸吧 加几声嘘声也不怕n+我在场 有闷场的话n+表演你看吗 够歇斯底里 吗 n+以眼泪淋花吧 一心只想你惊讶 n+我旧时似未存在吗n+加重注码 青筋 也现形n+话我知 现在存在吗n+凝视我 别再只看天花n+我非你杯茶 也可尽情地喝吧n+别遗忘有人在 为你 声沙n);chooseClip = sound3;/ 指定 AudioClip 对象为 sound1chooseClip.stop();/ 停止播放loop.setEnabled(true);/ 循环播放设为 trueif (choose.getSelectedItem()

23、 = 宫崎骏 - 天空之城.wav)/ 选择了这首歌/ 添加歌词ta.setText();chooseClip = sound4;/ 指定 AudioClip 对象为 sound1chooseClip.stop();/ 停止播放loop.setEnabled(true);/ 循环播放设为 trueObject source = event.getSource();if (source = play)/ 单击了播放按钮stop.setEnabled(true);chooseClip.play();/ 播放当前选中的 AudioClip 歌曲chooseL.setText(正在播放);if (so

24、urce = open)/ 单击了添加歌曲按钮int select = mc.showOpenDialog(frame);/ 打开文件打开对话框if (select = JFileChooser.APPROVE_OPTION);/ 单击了确定File file = mc.getSelectedFile();/ 获取所选文件chooseL.setText(file.getName();choose.setSelectedItem(file.getName();/ 设置选定的文件if (source = loop) / 单击了循环播放按钮looping = true;chooseClip.loop

25、();/ 开始循环播放loop.setEnabled(false);stop.setEnabled(true);chooseL.setText(正在循环播放);if (source = next) / 单击了下一曲按钮/ 确定下一首歌曲if (choose.getSelectedItem() = 风中有朵雨做的云.wav) choose.setSelectedItem(浮夸.wav); else if (choose.getSelectedItem() = 宫崎骏 - 天空之城.wav) choose.setSelectedItem(newyear.mid); else if (choose.

26、getSelectedItem() = newyear.mid) choose.setSelectedItem(风中有朵雨做的云.wav);else if (choose.getSelectedItem() = 浮夸.wav) choose.setSelectedItem(宫崎骏 - 天空之城.wav);chooseL.setText(已经选择下一曲);chooseClip.play();/ 播放下一首歌曲stop.setEnabled(true);if (source = last)/ 单击了上一曲歌曲/ 确定上一曲歌曲if (choose.getSelectedItem() = newye

27、ar.mid) choose.setSelectedItem(宫崎骏 - 天空之城.wav); else if (choose.getSelectedItem() = 风中有朵雨做的云.wav) choose.setSelectedItem(newyear.mid); else if (choose.getSelectedItem() = 宫崎骏 - 天空之城.wav) choose.setSelectedItem(浮夸.wav);else if (choose.getSelectedItem() = 浮夸.wav) choose.setSelectedItem(风中有朵雨做的云.wav);chooseClip.play();/ 播放上一首歌曲stop.setEnabled(true);chooseL.setText(已经选择上一曲);if (source = stop)/ 单击了停止按钮if (looping)/ 如果循环播放looping = false;chooseClip.stop();/ 停止播放loop.setEnabled(true); else choose

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论