音乐播放器Java课程设计报告.docx

上传人:b****7 文档编号:23689184 上传时间:2023-05-19 格式:DOCX 页数:12 大小:68.25KB
下载 相关 举报
音乐播放器Java课程设计报告.docx_第1页
第1页 / 共12页
音乐播放器Java课程设计报告.docx_第2页
第2页 / 共12页
音乐播放器Java课程设计报告.docx_第3页
第3页 / 共12页
音乐播放器Java课程设计报告.docx_第4页
第4页 / 共12页
音乐播放器Java课程设计报告.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

音乐播放器Java课程设计报告.docx

《音乐播放器Java课程设计报告.docx》由会员分享,可在线阅读,更多相关《音乐播放器Java课程设计报告.docx(12页珍藏版)》请在冰豆网上搜索。

音乐播放器Java课程设计报告.docx

音乐播放器Java课程设计报告

课程设计报告

 

课程设计题目:

java音乐播放器

 

学生姓名:

专业:

XXXXXXXXXXXXX

班级:

指导教师:

20XX年X月X日

 

一、课程设计目的

1、编程设计音乐播放软件,使之实现音乐播放的功能。

2、培养学生用程序解决实际问题的能力和兴趣。

3、加深java中对多媒体编程的应用。

二、课程设计的要求

利用学到的编程知识和编程技巧,要求学生:

1、系统设计要能完成题目所要求的功能,设计的软件可以进行简单的播放及其他基本功能。

2、编程简练,可用,尽可能的使系统的功能更加完善和全面

3、说明书、流程图要清楚。

三、课程设计内容

1、课程设计的题目及简介

音乐播放软件要求:

有图形界面,能播放MP3歌曲,有播放列表,前一首、后一首等常用播放软件功能。

2、设计说明

主要运用多媒体编程、图形界面、数组及循环进行设计,从而实现简单的音乐播放。

publicMyMusicPlayer():

实现窗口的成员方法

publicvoidrun():

实现改变歌曲的播放状态的成员方法

publicAudioCliploadSound(Stringfilename):

实现对声音的加载

publicvoidmouseClicked(MouseEvente):

实现对按钮的监听

publicvoiditemStateChanged(ItemEventarg0):

返回一个AudioClip对象

 

3、程序流程图

4、程序清单

importjava.awt.*;

importjavax.swing.*;

importjava.applet.*;

importjava.awt.event.*;

import.*;

publicclassMyMusicPlayerextendsThreadimplementsMouseListener,ItemListener{

JFrameMainFrame=newJFrame("MyMusicPlayer");//定义主窗体

JLabelsongname=newJLabel();//用标签显示状态

JButtonlast=newJButton();

JButtonplay=newJButton();

JButtonnext=newJButton();

JButtonloop=newJButton();//定义上一曲,播放,下一曲,循环四个按钮

JLabellist=newJLabel("播放列表");

Listsonglist=newList();//显示歌曲列表

AudioClip[]song=newAudioClip[10];//将音频文件放在数组中

AudioClipplaysong;//当前选定播放的音频文件

String[]name={"黄小琥-顺其自然.wav","陈奕迅-张氏情歌.wav","黄小琥_没那么简单.wav",

"戚薇-如果爱忘了.wav","郭采洁-狠狠哭.wav","test.wav"};

//将所有文件名存放在字符串数组name中

Stringplayname;//当前选定播放的音频名

intj=0;//记录当前选定播放的是哪首歌曲,默认为第一首

booleanplaybutton=true;//记录播放状态,默认为暂停播放

booleanloopbutton=false;//记录循环状态,默认为没有循环

Threadthread=newThread("pl");

staticMyMusicPlayerYu;

publicMyMusicPlayer(){

MainFrame.setLayout(null);

MainFrame.setBounds(300,50,310,500);

MainFrame.setVisible(true);

MainFrame.setDefaultCloseOperation(3);

MainFrame.add(songname);

Fontsname=newFont("斜体",Font.ITALIC,18);

songname.setFont(sname);//设置显示状态的字体为斜体

songname.setText("我的音乐播放器");

songname.setBounds(10,10,300,40);

last.setBounds(10,70,50,40);

play.setBounds(70,70,50,40);//设置四个功能键位置和大小

next.setBounds(130,70,50,40);

loop.setBounds(190,70,50,40);

last.setIcon(newImageIcon("1.png"));

play.setIcon(newImageIcon("2.png"));

next.setIcon(newImageIcon("3.png"));

loop.setIcon(newImageIcon("4.png"));//设置四个功能键的图片

last.addMouseListener(this);

play.addMouseListener(this);

next.addMouseListener(this);

loop.addMouseListener(this);//添加按键鼠标监听器

MainFrame.add(last);

MainFrame.add(play);

MainFrame.add(next);

MainFrame.add(loop);

list.setBounds(10,120,100,30);

Fontlis=newFont("宋",Font.BOLD,15);

list.setFont(lis);//显示“播放列表”

MainFrame.add(list);

songlist.setBounds(10,150,250,300);

songlist.setBackground(Color.GREEN);//设置播放列表的背景色为绿色

songlist.setVisible(true);

songlist.addItemListener((ItemListener)this);//添加列表监听器

MainFrame.add(songlist);

for(inti=0;i

{

song[i]=loadSound(name[i]);//逐个获取音频文件

songlist.add(name[i]);//将歌曲名添加到播放列表

}

playsong=song[0];

}

publicstaticvoidmain(String[]args){

Yu=newMyMusicPlayer();

Yu.start();

}

publicvoidmouseClicked(MouseEvente){

JButtonbtn=(JButton)e.getSource();

playsong.stop();

if(btn==play)

{if(playbutton==false)

playbutton=true;

else

playbutton=false;//当按下play后改变播放状态

}

else

if(btn==last)

{j-=1;//当按下last后将上一曲选定

if(j<0)

j=name.length-1;//若之前选定为第一首,则跳到最后一首

playbutton=true;

loopbutton=false;

}

else

if(btn==next)

{j+=1;//当按下next后将下一曲选定

if(j>=name.length)

j=0;//若之前选定为最后一首,则跳到第一首

playbutton=true;

loopbutton=false;

}

else

if(btn==loop)

{if(loopbutton==false)

{

loopbutton=true;

playbutton=true;

}

else

{//按下loop后,改变循环状态和播放状态

loopbutton=false;

playbutton=false;

}

}

if(playbutton==true)

Yu.run();

else

{

songname.setText("暂停播放:

"+playname);//暂停播放歌曲

play.setIcon(newImageIcon("2.png"));

}

}

publicvoidmouseEntered(MouseEventarg0){

//TODOAuto-generatedmethodstub

}

publicvoidmouseExited(MouseEventarg0){

//TODOAuto-generatedmethodstub

}

publicvoidmousePressed(MouseEventarg0){

//TODOAuto-generatedmethodstub

}

publicvoidmouseReleased(MouseEventarg0){

//TODOAuto-generatedmethodstub

}

publicvoiditemStateChanged(ItemEventarg0){

Stringstr=songlist.getSelectedItem();

playsong.stop();

for(inti=0;i

if(str==name[i])

{

j=i;

break;

}

Yu.run();

}

publicvoidrun(){

playsong=song[j];//播放状态为播放时

playsong.play();//播放选定歌曲

playname=name[j];

if(loopbutton==true)

{

playsong.loop();//循环播放选定歌曲

songname.setText("循环播放:

"+playname);

}

else

songname.setText("正在播放:

"+playname);

songlist.select(j);//播放列表中选定播放歌曲项目

play.setIcon(newImageIcon("5.png"));

}

publicAudioCliploadSound(Stringfilename){//返回一个AudioClip对象

URLurl=null;

try{

url=newURL("file:

"+filename);

}catch(MalformedURLExceptione){}

returnApplet.newAudioClip(url);

}

}

5、程序运行结果

四、课程设计总结

经过这几天的Java课程设计,让我知道了做课程设计的一般方法,通过各种努力终于完成了设计要求.这次课程设计基本上含盖了大学一年学习到的Java语言知识点,课设题目要求不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力。

这次课设使我了解我编程思想和编程技巧,也再一次熟悉了开发程序的过程,包括构思、设计、编写、调试、修订。

做课程设计不仅让我修补了以前学习的漏洞,也让我跟激发了对程序开发的兴趣和自信。

创新思维至关重要,这应该可以借鉴在老师的教学工作上,这不仅让我们写出精简的代码,也有助于开发出高效的程序。

五、参考文献

《Java程序设计实用教程》张永常主编

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1