搜档网
当前位置:搜档网 › 基于java的音乐播放器的设计(源代码+实验报告)

基于java的音乐播放器的设计(源代码+实验报告)

基于java的音乐播放器的设计(源代码+实验报告)
基于java的音乐播放器的设计(源代码+实验报告)

主类MUSICPLAYER类:

import java.util.*;

import javax.swing.JSlider;

import java.awt.BorderLayout;

import java.awt.FlowLayout;

import java.awt.Point;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.io.BufferedOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.io.Serializable;

import javax.media.ControllerEvent;

import javax.media.ControllerListener;

import javax.media.EndOfMediaEvent;

import javax.media.Manager;

import javax.media.MediaLocator;

import javax.media.NoPlayerException;

import javax.media.Player;

import javax.media.PrefetchCompleteEvent;

import javax.media.Time;

import javax.swing.ButtonGroup;

import javax.swing.DefaultListModel;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

import javax.swing.JList;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JRadioButtonMenuItem;

import javax.swing.JScrollBar;

import javax.swing.JScrollPane;

import javax.swing.filechooser.FileNameExtensionFilter;

public class MusicPlayer implements ActionListener, Serializable,ControllerListener {

private static final long serialVersionUID = 1L;

private JFrame frame = null;

private JPanel controlPanel = null;

private JButton btnPlay = null;

private JButton btnPre = null;

private JButton btnNext = null;

private JScrollPane listPane = null;

private JList list = null;

private DefaultListModel listModel = null;

private JMenuBar menubar = null;

private JMenu menuFile = null, menuAbout = null, menuMode = null;

private JMenuItem itemOpen, itemOpens, itemExit, itemAbout;

private JRadioButtonMenuItem itemSingle, itemSequence ,itemRandom;

private ListItem currentItem = null;

private static Player player = null;

private boolean isPause = false;

private int mode;

private int currentIndex;

private ImageIcon iconPlay = new ImageIcon("d:\\1.jpg");

private ImageIcon iconPre = new ImageIcon("d:\\3.jpg");

private ImageIcon iconNext = new ImageIcon("d:\\2.jpg");

private ImageIcon iconPause = new ImageIcon("d:\\4.jpg");

public static void main(String[] args)

{

new MusicPlayer();

}

public MusicPlayer()

{

init();

}

public void init()

{

frame = new JFrame();

frame.setTitle("音乐播放器");

frame.setSize(400, 300);

frame.setResizable(false);

frame.setLocationRelativeTo(null);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

menubar = new JMenuBar();

menuFile = new JMenu("文件");

menuAbout = new JMenu("关于");

menuMode = new JMenu("播放模式");

itemOpen = new JMenuItem("添加文件");

itemOpens = new JMenuItem("添加文件夹");

itemExit = new JMenuItem("退出");

itemAbout = new JMenuItem("关于");

itemOpen.addActionListener(this);

itemOpens.addActionListener(this);

itemExit.addActionListener(this);

itemAbout.addActionListener(this);

itemSequence = new JRadioButtonMenuItem("顺序播放"); itemSequence.setSelected(true);

itemSingle = new JRadioButtonMenuItem("单曲循环"); itemSequence.addActionListener(this);

itemRandom = new JRadioButtonMenuItem("随机播放"); itemRandom.addActionListener(this);

itemSingle.addActionListener(this);

ButtonGroup bg = new ButtonGroup();

bg.add(itemRandom);

bg.add(itemSequence);

bg.add(itemSingle);

menuFile.add(itemOpen);

menuFile.add(itemOpens);

menuFile.add(itemExit);

menuAbout.add(itemAbout);

menuMode.add(itemSequence);

menuMode.add(itemSingle);

menuMode.add(itemRandom);

menubar.add(menuFile);

menubar.add(menuAbout);

menubar.add(menuMode);

frame.setJMenuBar(menubar);

frame.setLayout(new BorderLayout());

controlPanel = new JPanel();

controlPanel.setLayout(new FlowLayout());

btnPlay = new JButton(iconPlay);

btnPre = new JButton(iconPre);

btnNext = new JButton(iconNext);

btnPlay.addActionListener(this);

btnPre.addActionListener(this);

btnNext.addActionListener(this);

controlPanel.add(btnPre);

controlPanel.add(btnPlay);

controlPanel.add(btnNext);

listPane = new JScrollPane();

listModel = load();

list = new JList(listModel);

if (list.getSelectedIndex() == -1 && listModel.size() > 0)

{

currentItem = (ListItem) listModel.get(0);

list.setSelectedIndex(0);

currentIndex=0;

}

listPane.getViewport().add(list);

list.addMouseListener(new MouseAdapter()

{

public void mouseClicked(MouseEvent e)

{

if (e.getClickCount() == 2)

{

if(player!=null)

{

player.close();

btnPlay.setIcon(iconPlay);

}

currentIndex = list.locationToIndex(e.getPoint());

currentItem = (ListItem) listModel.get(currentIndex);

list.setSelectedIndex(currentIndex);

play();

}

}

});

frame.setLayout(new BorderLayout());

frame.add(controlPanel, BorderLayout.NORTH);

frame.add(listPane, BorderLayout.CENTER);

frame.setVisible(true);

};

public void actionPerformed(ActionEvent e)

{

if (e.getSource() == itemOpen)

{// add files

JFileChooser jfc = new JFileChooser();

FileNameExtensionFilter filter = new FileNameExtensionFilter("音乐文件", "mp3", "wav");

jfc.setFileFilter(filter);

jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);

jfc.setMultiSelectionEnabled(true);

if (jfc.showOpenDialog(frame) == JFileChooser.APPROVE_OPTION)

{

File[] files = jfc.getSelectedFiles();

for (File f : files)

{

ListItem item = new ListItem(f.getName(), f.getAbsolutePath());

listModel.addElement(item);

}

}

}

else if (e.getSource() == itemOpens)

{// add files in a directory

JFileChooser jfc = new JFileChooser();

jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

if (jfc.showOpenDialog(frame) == JFileChooser.APPROVE_OPTION)

{

File directory = jfc.getSelectedFile();

File[] files = directory.listFiles(new java.io.FileFilter()

{

public boolean accept(File f)

{

if (f.getName().toLowerCase().endsWith(".mp3")|| f.getName().toLowerCase().endsWith(".wav"))

return true;

return false;

}

});

for (File file : files)

{

ListItem item = new ListItem(file.getName(), file.getAbsolutePath());

listModel.addElement(item);

}

save(listModel);

}

}

else if (e.getSource() == itemExit)

{

System.exit(0);

}

else if (e.getSource() == itemAbout)

{

JOptionPane.showMessageDialog(frame, "作者:陆鑫");

}

else if (e.getSource() == btnPlay)

{

// play or pause

play();

}

else if (e.getSource() == btnPre)

{

pre();

}

else if (e.getSource() == btnNext)

{// next music

next();

}

else if (e.getSource() == itemSequence)

{

mode = 0;

}

else if (e.getSource() == itemSingle)

{

mode = 1;

}

else if (e.getSource() == itemRandom)

{

mode = 2;

}

}

// play control

/**

* 播放

*/

public void play()

{

if (btnPlay.getIcon() == iconPlay)

{

if (isPause)

{

player.start();

System.out.println("暂停结束");

isPause = false;

}

else

{

try

{

player = Manager.createPlayer(new MediaLocator("file:"+ currentItem.getPath()));

player.addControllerListener(this); // 提取媒体内容

player.prefetch();

}

catch (NoPlayerException e1)

{

e1.printStackTrace();

}

catch (IOException e1)

{

e1.printStackTrace();

}

}

btnPlay.setIcon(iconPause);

}

else

{

player.stop();

isPause = true;

System.out.println("暂停");

btnPlay.setIcon(iconPlay);

}

}

public void next()

{

if (currentIndex == listModel.getSize() - 1)

{

currentIndex = 0;

}

else

{

currentIndex++;

}

currentItem = (ListItem) listModel.get(currentIndex);

list.setSelectedIndex(currentIndex);

Point p = list.indexToLocation(currentIndex);

JScrollBar jScrollBar = listPane.getVerticalScrollBar();// 获得垂直转动条

jScrollBar.setValue(p.y);// 设置垂直转动条位置

btnPlay.setIcon(iconPlay);

if (player != null)

player.close();

isPause = false;

play();

}

public void rand()

{

list.setSelectedIndex((int)(Math.random()%(listModel.getSize()-1)));

Point

p=list.indexToLocation((int)(Math.random()%(listModel.getSize()-1)));

JScrollBar jScrollBar = listPane.getVerticalScrollBar();

jScrollBar.setValue(p.y);

btnPlay.setIcon(iconPlay);

if (player != null)

player.close();

isPause = false;

play();

}

public void pre()

{

if (currentIndex == 0)

{

currentIndex = listModel.getSize() - 1;

}

else

{

currentIndex--;

}

currentItem = (ListItem) listModel.get(currentIndex);

list.setSelectedIndex(currentIndex);

Point p = list.indexToLocation(currentIndex);

JScrollBar jScrollBar = listPane.getVerticalScrollBar();// 获得垂直转动条

jScrollBar.setValue(p.y);// 设置垂直转动条位置

btnPlay.setIcon(iconPlay);

if (player != null)

{

player.close();

}

isPause = false;

play();

}

// end play control

public DefaultListModel load()

{

File file = new File("list.lst");

DefaultListModel dlm = new DefaultListModel();

if (file.exists())

{

try

{

ObjectInputStream ois = new ObjectInputStream(

new FileInputStream(file));

Integer size = (Integer) ois.readObject();

if (size != 0)

{

for (int i = 0; i < size; i++)

{

ListItem item = (ListItem) ois.readObject();

dlm.addElement(item);

}

}

ois.close();

return dlm;

}

catch (FileNotFoundException e)

{

e.printStackTrace();

}

catch (IOException e)

{

e.printStackTrace();

}

catch (ClassNotFoundException e)

{

e.printStackTrace();

}

}

return dlm;

}

public void save(DefaultListModel dlm)

{

try

{

ObjectOutputStream oos = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream("list.lst")));

Integer size = dlm.getSize();

oos.writeObject(size);

for (int i = 0; i < size; i++)

{

ListItem item = (ListItem) dlm.get(i);

oos.writeObject(item);

}

oos.close();

}

catch (Exception e)

{

e.printStackTrace();

}

}

public void controllerUpdate(ControllerEvent e) {

if (e instanceof EndOfMediaEvent)

{

if (mode == 0)

{// 顺序播放

System.out.println("顺序播放");

next();

}

else if (mode == 1)

{ // 单曲循环

System.out.println("播放结束");

player.setMediaTime(new Time(0));

System.out.println("单曲循环");

player.start();

}

else if (mode == 2)

{

System.out.println("随机播放");

rand();

}

return;

}

// 当提取媒体的内容结束

if (e instanceof PrefetchCompleteEvent)

{

System.out.println("开始播放");

player.start();

return;

}

}

}

LISTITEM类

import java.io.Serializable;

public class ListItem implements Serializable

{

private static final long serialVersionUID = 1L;

private String name;

private String path;

public ListItem()

{}

public ListItem(String name, String path)

{

https://www.sodocs.net/doc/bb9075787.html, = name;

this.path = path;

}

public String getName()

{

return name;

}

public void setName(String name)

{

https://www.sodocs.net/doc/bb9075787.html, = name;

}

public String getPath()

{

return path;

}

public void setPath(String path)

{

this.path = path;

}

public String toString()

{

return name;

}

}

基于java的音乐播放器的设计

摘要:在信息,技术高速发展的今天,多媒体技术也越来越受到人们的重视。文章对目前使用较多的音乐播放器作出较详细的比较。通过阅读多张文献,分析了一些音乐播放器的功能并考虑了怎样能实现支持更多格式的音乐文件,怎样能满足使用者对播放器的需求。本文主要介绍了一个基于Java Applet来实现的音乐播放器的设计。并对系统开发中涉及到的关键技术作了探讨,简要分析介绍了Java技术和 Applet的工作原理,最后说明系统需要实现的功能。

关键词:java;Applet;音乐播放器;

前言

近年来,听音乐已成为人们生活的一部分,与此同时,音乐播放器以其平易近人的价格也日趋普及,这大大丰富了业余生活也缓解了工作压力,但尚有诸多不足之处有待改进日常生活中,我们在听音时,常感手动操作甚是麻烦且想寻找某个音频文件须从头到尾逐个查看,这样费时费力很是不便。音乐播放器的实现方法,采用口述音乐文件名的方式即可播放指定歌曲文件,避免了繁琐的查找,亦使其更加人性化,实现了播放器的全自动语音控制。我将来要采用java Applet的多媒体技术,设计出一个基于java Applet的音乐播放器。

现在电脑上的音乐播放器百花齐放,以Winamp,Foobar2000,千千静听,酷狗和酷我音乐盒最流行。播放器最重要的参数当属支持的格式了,即使只图个响,也需要有丰富的格式作为后盾。在此方面,千千静听支持多种音频格式,除了常见的MP3,WMA等,也支持APE,FLAC等无损压缩格式,它一共支持三十多种音频格式,是一个比较全能的播放器。Winamp也支持非常多的格式,但对APE格式的支持需要安装对应插件;除音频格式外,Winamp还支持一些常见的视频格式,这个功能能为用户带来一些方便。Foobar2000支持的格式数量也差不多,但是对APE的支持仍然需要安装插件。不过Foobar2000有一个特色功能,它支持直接读取压缩包里的音乐文件,从电骡上下载的APE完整碟通常都是打包的,如果用Foobar2000的这个功能就可以不解压直接听歌了。

相比之下,酷我音乐盒支持的格式就比较单一了,无论是网上搜索还是本地播放歌曲,都仅支持MP3和WMA种格式。酷狗的表现则稍微好点,除了支持MP3和WMA之外,还支持APE和FLAC格式。而酷我音乐盒,则支持在线MV视频的播放。在本文中我利用java语言设计的音乐播放器的功能跟千千静听,酷狗和酷我音乐盒,Winamp,Foobar2000的功能差不多,不过利用java设计的音乐播放器支持的音频文件格式比它们丰富一点。如:WAP,AIFF,MIDI,AU,RMF等跨平台功能比较强。

1 Java 技术

Java技术已经成为当今Internet应用开发的核心与主流技术。这一方面是因为java语言具有面向对象,可移植性,强壮性与安全性等优良特征,另一方面也由于java技术对各个层次的分布式应用(包括电器设备的嵌入式计算,桌面计算与企业级计算)都提供了全面系统的方法与技术。因此,目前java已经从单纯的程序设计语言发展成为支撑Internet计算的大技术体系,进入了发展与应用的高级阶段。

1.1java语言

对于都数程序设计语言,其程序运行要么采用编译执行,要么采用解释执行的方式。而java语言的特殊之处在于,程序运行既要经过编译又要进行解释,如图1-1所示。首先,java程序由编译器进行编译,产生了一种中间代码,称为java 字节码(java bytecodes)。字节码是java虚拟机的代码,是与平台无关的中性代码,因此不能在各种计算机平台上直接运行,必须在JVM上运行。Java解释器是JVM的实现,它把字节码转换为底层平台的机器码,使Java程序最终得以运行。无论是Application还是嵌入式在浏览器中的Applet,都需要通过解释器才能运行。

图1-1 Java 语言的运行

1.2 Java的特征

Java是一种”简单”(simple),面向对象(object oriented),分布式(distributed),解释性(interpreted),健壮(orbust),安全(secure),体系结构中立(architecture neutral),可移植性(portable),高性能(high performance),多线程(multithreaded),和动态(dynamic)“的编程语言。

1)简单性:Java语言语法和语义都比较单纯,,容易学习和使用。

2)面向对象:作为一种面向对象的编程语言,Java不仅最为“纯洁”,同时,它对面向对象方法的支持最为全面。另外,Java通过抽象类和接口(interface)支持面向的多态性要求,既一个对外接口,多种内部实现。

3)分布式特征:Java实现两种层次上的分布。(1)数据分布支持:通过java的URL 类,Java程序可以访问网络撒谎那个的各类信息资源。访问方式完全类似于本地文件系统。(2)操作分布支持:java通过嵌在WWW页面中的Applet(小应用程序)将计算从服务器分布至客户机。Applet由WWW浏览器在客户端执行,从而避免了网络拥挤,提高了系统效率。

4)java的解释性:运行Java程序需要解释器。程序被编译为成为字节代码的Java 虚拟机代码。字节代码与机器无关,可以在任何有Java解释器的机器上运行。

5)健壮性:Java提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。

6)安全性:在发分布式环境中,安全性是一个十分重要的问题。Java在语言和运行环境中引入了多级安全措施,其采用的主要安全机制有:

(1)内存分配及布局由Java运行系统规定。

(2)运行系统执行基于数字签名技术的代码认证,字节码验证与代码访问权

限控制的。

7)体系结构中立:Java语言的设计不是针对某种具体平台结构的。

8)可移植性:Java是迄今为止对可移植性支持最佳的编程语言。Java的最大特点是“一次编程,处处运行”。

9)高性能:Java语言虽然采取字节码解释运行方式,但由于字节码与机器码十分接近,使得字节码到机器码的转换十分快捷。

10)多线性:线程是比进程更小,更为经济的并发执行单位,它与进程的主要差异在于它不拥有单独的资源,而是与其他线程共享所属进程的资源。

11)动态性:Java的动态性是其面向对象设计的延伸。

2 Java Applet概念

Applet(小应用程序)是Java与Web相结合而引入的一种重要的Java应用形式,它不仅使Web页具有动画,声音,图像和其他特殊效果,更重要的是可以使Web页能够与用户动态进行交互,接收用户的输入,然后根据用户的输入作出不同的反应。它是能够嵌入到HTML页面中,并能够在浏览器中运行的Java类。Applet 自身不能运行,必须嵌入在其他应用程序(例如Web 浏览器或Java Appletviewer)中运行。Applet类提供了从制定的URL获取图像和声音的方法,使Applet可以很方便地实现多媒体功能。当图像数据通过网络下载时,由于受网络带宽等因素的限制,用户在浏览器中看到的一般是渐渐增长的图像显示过程。获取指定URL上的声音数据,返回一个类型为AudioClip的对象,通过该对象可以实现声音演播。

2.1 Applet 类

生成 Applet要创建Applet类的子类,一个Applet的运行为框架由Applet 类来决定的。Applet类提供了从指定的URL获取图像和声音的方法,使Applet 可以很方便地实现多媒体功能的。

要编写Applet小应用程序,就必须继承Applet类,并覆盖其中必要的方法。Applet类为applet提供了基本的框架结构是applet和其运行环境之间的标准接口。Web浏览器能够自动调用下列方法来控制applet小应用程序的生成和运行:

○1init方法○2Start 方法○3stop 方法○4destroy 方法

3 设计本系统要用到的Java关键技术

3.1在Applet中播放声音的方法和步骤

在Java.Applet包中的Applet类和AudioClip接口提供了播放声音的基本支持。以前计算机存储声音文件的格式有许多,目前Java只支持一种声音文件格式有.au,.mid,.wav等。对于其他格式的文件,可以用相应地工具软件将它们转换为.au或.mid等Java支持的文件。在Applet中播放声音文件有两种方法:

(1)在Java的API中,Applet类提供了一个方法play(),它可以直接根据URL 地址来播放声音。这个方法指定如下:

Public void play(URL url);

Public void play(URL url,string soundFile);

在第一种方法的定义中,参数url是保存声音文件的绝对URL地址,即统一资源定位,它指定Web网上的一个声音文件;在第二种方法定义中,参数URL是保存声音文件的基地址,而参数soundFile是声音文件的文件名。如果声音文件与Applet的HTML文件在相同的目录下,则可以通过使用getCodeBase()方法来获得该声音文件的基地址。如果Applet本身的URL地址为“http//https://www.sodocs.net/doc/bb9075787.html,/pro/”,则语句:

Play(gatCodeBase(),“space.au”);

等同于语句:

Play(“http//https://www.sodocs.net/doc/bb9075787.html,/pro/”,“space.au”);

在程序编写过程中,若使用第一种方法定义,则将程序由一个服务器转移到另一服务器上或从一个目录转移到另一个目录下时,必须改变源代码中的URL地址:若使用第二种方法定义,即使用getCodeBase()方法来定位资源文件,则将程序由一个服务器转移到另一个服务器或从一个目录转移到另一个目录下时,不必改变源代码中的URL地址,而只需将声音文件与播放他的Java文件放在同一目录下即可。

Play()方法只能进行简单的播放,只能一次敬爱那个声音文件播放完,没有停止和连续播放的功能,所以,一般编写播放声音的程序时不采用此方法。

(2)利用Java中的AudioClip类对象播放声音文件。AudioClip类提供了两种获取声音数据的方法,定义如下:

AudioClip getAudioClip(URL url);

AudioClip getAudioClip(URL url,String soundFile);

它们的参数含义与以上相同。使用时可按如下步骤。

○1)声明一个AudioClip类的对象,如:

AudioClip audio;

○2)使用getAudioClip()方法为AudioClip类的对象获得句柄,如:

aud=getAudioClip(getCodeBase(),“space.au”);

或一次完成,如:

AudioClip aud=getAudioClip(getCodeBase(),“space.au”);

或:

AudioClip aud=getAudioClip(“HTTP//https://www.sodocs.net/doc/bb9075787.html,/pro/”,“space.au”

使用这种方法创建声音播放程序文件的一般步骤如下:

○1创建一个AudioClip对象。

○2装入声音文件到AudioClip对象。

○3一次播放或者不停地循环播放声音。

○4停止播放。

Java.applet.AudioClip类提供了3个方法实现对声音文件播放的控制,它们分别是play(),loop()和stop()。在这个设计过程中使用了java.applet.AudioClip类中的play()方法播放一个载入的声音文件;使用loop()方法循环地播放该声音文件,并且使用stop()方法来停止播放这个声音文件。

方法star()和stop()是Applet类中定义的方法,该程序继承了Applet类,并重新定义了这两个方法,这一过程称做方法的覆盖。这两个方法是由操作系统自动调用的。当程序启动时两个方法,star()方法由操作系统自动调用,star()方法在运行时通过AudioClip对象aud调用loop()方法,实现对声音的循环播放。当程序停止运行时,Applet类中的stop()方法被自动调用,stop()方法运行时通过AudioClip对象aud调用AudioClip中的stop()方法来终止声音文件的播放。

3.2创建播放器的图形用户界面所需的控件

3.2.1菜单栏与菜单

在程序中创建菜单是最常用图形的用户界面之一。Java语言中,与菜单相关类有5个:JMenuBar,JMenuItem,JCheckBoxMenuItem和JRadioButtonMenuItem。

实现菜单的过程比较复杂,主要下面三步:

(1)创建菜单栏,并将它设计到某个容器中。创建菜单栏需要利用JMenuBar类,该类只有一个默认构造方法

(2)创建菜单条,并将它们添加到菜单栏中。创建菜单条需要利用JMenu类,该类有多种构造方法,其中最常用的是JMenu(String s)。

(3)创建菜单项,并将它们添加到菜单条中。创建菜单项一般需要利用JMenuItem类,该类有多种构造方法,其中最常用的是JMenuItem(String text)。

3.2.2按钮与标签

1)按钮

创建按钮需要利用JButton类,JButton类中常用的方法有:

public JButton() //创建一个没有标记的空按钮

public JButton(Icon icon) //创建一个标有指定图标的按钮

public JButton(String text) //创建一个标有指定文字的按钮

public JButton(String text ,Icon icon)

//创建一个标有指定文字和图表的按钮

2)标签

标签与按钮相同,标签也可以显示一串文字或图像。创建标签需要利用JLabel 类。JLabel类中常用的构造方法有:

public JLabel()

//创建一个空标签

public JLabel(Icon image)

//创建具有指定图标的标签

public JLabel(Icon image,int horizontalAlignment)

//创建具有指定图标和水平对齐方式的标签

public JLabel(String text)

//创建具有指定文字的标签

public JLabel(String text,int horizontalAlignment)

//创建具有指定文字和水平对齐方式的标签

public JLabel(String text,Icon icon,int horizontalAlignment)

//创建具有指定文字,图标和水平对齐方式的标签

3.2.3列表框

列表也允许用户从中进行选择。创建列表需要利用JList类,JList类中常用的构造方法有:

public JList()

//创建一个列表,列表中的选项为空

public JList(Object[] listData)

//创建一个列表,列表中的选项由参数listData指定

结论

本文介绍了基于java applet音乐播放器的关键技术。并对Applet的基本原理与设计方法,对Appplet实现的多媒体功能。我将要设计的播放器,使用Swing 组件生成播放器的菜单栏,利用JButton类创建按钮,JLabel类创建标签,JList

类创建列表框等方法实现播放器的基本功能。

参考文献:

[1]刘慧宁,那盟.Java程序设计[M].北京:机械工业出版社,2005,10:309-312.

[2]朱喜福,赵敏,夏齐霄,等.java程序设计[M].北京:人民邮电出版社,2005,2:272-290.

[3]Y.Daniel Liang 著,马海军,景丽等译.java编程原理与实践[M].北京:清华大学出版社2005,8:367-643.

[4]徐明浩著,武转海,译.java编程基础应用与实例[M].北京:人民邮电出版社,2005,10:342-347.

[5] 蔡学镛.java历史回顾[J]https://www.sodocs.net/doc/bb9075787.html,,2009,4:53-55.

[6]王祖析.基于java技术的网络教学互动系统的构建[J].学术探讨,2009:74-78.

[7]汤庸主编,冯至圣,申建芳等.java 程序设计与实践[J].北京:冶金工业出社,2003,1:208-212.

[8] 马义德 ,周炜超 ,文芳 ,李柏年,李庚 . 基于SPCE061A 的声控 mp3播放器设计[J]. 电子设计,2009:217-301.

[9] 周华中,李继凯.基于J2ME 流媒体播放器的模型设计[J].科技创新导报,2009:15-18.

[10]春水东流. 不让超级旋风自动关联QQ音乐播放器[J]. 电脑迷,2009,(7).

用户界面设计实验报告(中南民族大学)

《用户界面设计》实验报告 学号: 姓名: 班级名称: 指导教师:李波 实验日期:

目录 Experiment 1: Evaluation Practices (1) Experiment 2: Design a graphic user interface (3) Experiment 3: Error Messages GUI (12) Experiment 4: Help Document (14)

Experiment 1: Evaluation Practices Use the blank provided to answer the questions. Answer the questions on a scale of 1 to 5, where 1 is a strong no, 5 is a strong yes, and 3 is neutral. If the question does not apply, use a 0.

Experiment 2: Design a graphic user interface Now, you can use the usability measurement to design a graphic user interface .First, you must select a system to finish sessions or tasks for users, so users’ requirements must be analyzed to define all functions you want to realize. Second, you must draw a graphic UI using the software tools, such as Microsoft visual studio, or Visio, or others. All functions must be appeared in this GUI include a main interface and all assistant interfaces. Finally, you must explain why and how you design these GUIs according to the usability measurement and the EIGTH GOLDEN RULES. The document format is described as follow. You can finish this work by PPT or word. 1. The system requirement The system requirement is described here. The main contents include the aims and what the users want to do. 随着信息时代的发展,计算机管理的应用越来越广泛,随着计算机的普及,就连调查问卷也慢慢的脱离了纸质化。对于一个比较大的公司而言,对其客户进行调查问卷是很有必要进行的,而由于客户的分布广,进行纸质的调查问卷不仅浪费财力,还浪费了物力,因此网上调查就避开这一缺点。因此,我设计了一个网上调查问卷系统。这个系统的用户有两类,一类是经销商,一类是经销商的客户,客户通过网上填写问卷,经销商则对客户的问卷进行回收,统计,分析,以做出相应的出售方案。 The aims 1)用户管理

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

课程设计报告课程设计题目:java音乐播放器 学生姓名: 专业:XXXXXXXXXXXXX 班级: 指导教师: 20XX年X月X日

一、课程设计目的 1、编程设计音乐播放软件,使之实现音乐播放的功能。 2、培养学生用程序解决实际问题的能力和兴趣。 3、加深java中对多媒体编程的应用。 二、课程设计的要求 利用学到的编程知识和编程技巧,要求学生: 1、系统设计要能完成题目所要求的功能,设计的软件可以进行简单的播放及其他基本功能。 2、编程简练,可用,尽可能的使系统的功能更加完善和全面 3、说明书、流程图要清楚。 三、课程设计内容 1、课程设计的题目及简介 音乐播放软件要求: 有图形界面,能播放MP3歌曲,有播放列表,前一首、后一首等常用播放软件功能。 2、设计说明 主要运用多媒体编程、图形界面、数组及循环进行设计,从而实现简单的音乐播放。 public MyMusicPlayer():实现窗口的成员方法 publi c void run():实现改变歌曲的播放状态的成员方法 public AudioClip loadSound(String filename):实现对声音的加载public void mouseClicked(MouseEvent e):实现对按钮的监听public void itemStateChanged(ItemEvent arg0):返回一个AudioClip 对象

3、程序流程图 4、程序清单 import java.awt.*; import javax.swing.*; import java.applet.*; import java.awt.event.*; import https://www.sodocs.net/doc/bb9075787.html,.*; public class MyMusicPlayer extends Thread implements MouseListener,ItemListener{ JFrame MainFrame=new JFrame("MyMusicPlayer"); //定义主窗体 JLabel songname=new JLabel(); //用标签 显示状态 JButton last=new JButton(); JButton play=new JButton();

大学java课程设计实验报告_计算器

JAVA课程设计报告 组员信息: 第(二)组 计算器的实现问题 问题描述:制作一个计算器 基本要求:要求实现类似Windows操作系统里面的标准计算器。 在此基础上实现部分科学性的功能。 测试数据:分别对加、减、乘、除和sin、cos、tan函数进行测试 算法思想:使用String定义的数组a[25]对每个按钮进行按钮赋值,创建一个Panel进行字符和数字的存放,调用 addActionListener()对各个时间进行监听。调用 系统库函数对数值进行运算。 模块划分:1、主函数main()创建一个计算器。 2、void actionPerformed(ActionEvent e)对鼠标 点击的事件进行响应以及在文本框中的显示。 3、各Buuton对应的功能: “开方”:对输入数字开方 “平方”:对输入数字平方

“getResult()”:对四则运算进行分别运算操 作 “backspace”:取消上一次的操作 “CE”:取消上一次运算的操作 “C”:清空作用 “sin”:对输入数据进行sin运算 “cos”:对输入数据进行cos运算 “tan”:对输入数据进行tan运算 “+/-”:对输入的数据取反 “+”,“-”,“*”,“/”:对数据进行四则 运算 源程序: package hechongwei; import https://www.sodocs.net/doc/bb9075787.html,ng.String; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; import https://www.sodocs.net/doc/bb9075787.html,ng.Math; class Calculator extends JFrame implements ActionListener

实验8MATLAB图形用户界面设计实验报告

实验8 MATLAB图形用户界面设计实验报告实验报告 课程名称:MATLAB应用成绩: 实验项目名称:MATLAB图形用户界面设计实验时间:11.6 指导教师(签名): 班级:XXXXX 姓名:XXXXX 学号:XXX 实验目的: 1. 熟悉MATLAB的菜单设计方法 2. 熟悉MATLAB的主要控件使用方法 3. 熟悉MATLAB的GUI设计流程 实验环境: MATLAB 7.1 实验内容及过程: 简单计算器的设计:在MATLAB GUI的实验环境中,通过MATLAB图形用户界面设计的方法,设计一个 简单的计算器,以实现简单数据的退出、清屏、删除、四则运算等基本功能。 实验过程、结果及分析:

计算器代码: function varargout = jsq(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 第 1 页共 6 页 'gui_OpeningFcn', @jsq_OpeningFcn, ... 'gui_OutputFcn', @jsq_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

Java音乐播放器源代码即结果显示

简单的音乐播放器一、程序代码: import java.io.File; import java.awt.BorderLayout; import java.awt.Button; import java.awt.Color; import java.awt.FileDialog; import java.awt.Frame; import java.awt.GridLayout; import https://www.sodocs.net/doc/bb9075787.html,bel; import java.awt.List; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.MenuShortcut; import java.awt.Panel; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.DataLine; import javax.sound.sampled.SourceDataLine; public class Example extends Frame { private static final long serialVersionUID = 1L; boolean isStop = true;// 控制播放线程 boolean hasStop = true;// 播放线程状态

Java课程设计实验报告

Java课程设计实验报告 导语:日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。以下是小编为大家整理分享的Java课程设计实验报告,欢迎阅读参考。 1、加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2、使用本学期学习的Java SE技术完成多功能日历GUI 程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3、在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 1、问题描述准确、规范。 2、程序结构合理,调试数据准确、有代表性、。 3、界面布局整齐,人机交互方便。 4、输出结果正确。 5、正确撰写实验报告。 编写一个GUI程序实现日历的功能。一年日历用12页

显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农 历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报 时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 1、在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2、在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3、各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4、根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5、详细的上机实验步骤见任务分工及程序设计进度表。 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能

Visual FoxPro 程序设计实验报告

VF程序设计实验报告 图书馆管理系统 专业: 学号: 姓名: 指导教师: 2010年12月31日

目录 第一部分系统概述--------------------------------2 第二部分系统功能模块设计------------------------2 第三部分系统数据库及表设计----------------------2 第四部分系统菜单设计----------------------------5 第五部分系统界面设计----------------------------6 第六部分系统相关程序代码-----------------------13 第七部分实验报告小结---------------------------22 第八部分参考资料-------------------------------22

一、系统概述 近年来,随着图书馆规模的不断扩大,图书数量相应的增加,有关图书的各种信息量也成倍增加,面对庞大的信息量,传统的人工管理户导致图书管理的混乱,人力与物力过多的浪费,图书管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理。因此,为了充分发挥了图书馆的功效,最大限度地为读者服务,必须制定一套合理、有效,规范和实用的图书馆管理系统,对图书资料进行集中统一的管理。 根据上述需要,我们建立本图书馆管理系统。 根据图书、读者和管理员三者之间的关系,本系统主要实现读者对图书的查询、个人信息的修改和管理员对读者、图书的管理。 本系统采用VF6.0作为开发工具。 二、系统功能模块设计 本系统可以完成一般图书馆关于图书查询、借阅及书库管理的主要功能。其中:图书查询模块可以查询所需要的图书;读者管理模块中,读者可以查看自己的信息,对登陆密码进行修改,管理员可以对读者进行添加和删除;图书管理模块中,管理员可以为读者进行图书的借阅和归还操作,以及对图书的信息进行修改,如加入新书、删除不能使用的图书和更新图书的信息;报表打印模块中,实现对需要的信息进行打印输出。系统结构下图所示。 三、数据库及表设计 经分析,图书馆管理系统主要涉及了学生、管理员和图书三部分。因此需要建立的实体就是学生、管理员和图书三个。 根据系统模块的设计,可以的到本系统需要建立的基本表为:读者信息表、

基于java的音乐播放器的设计源代码+实验报告

主类M U S I C P L A Y E R类:import .*; public class MusicPlayer implements ActionListener, Serializable,ControllerListener { private static final long serialVersionUID = 1L; private JFrame frame = null; private JPanel controlPanel = null; private JButton btnPlay = null; private JButton btnPre = null; private JButton btnNext = null; private JScrollPane listPane = null; private JList list = null; private DefaultListModel listModel = null; private JMenuBar menubar = null; private JMenu menuFile = null, menuAbout = null, menuMode = null; private JMenuItem itemOpen, itemOpens, itemExit, itemAbout; private JRadioButtonMenuItem itemSingle, itemSequence ,itemRandom; private ListItem currentItem = null; private static Player player = null; private boolean isPause = false; private int mode; private int currentIndex; private ImageIcon iconPlay = new ImageIcon("d:\\"); private ImageIcon iconPre = new ImageIcon("d:\\"); private ImageIcon iconNext = new ImageIcon("d:\\"); private ImageIcon iconPause = new ImageIcon("d:\\"); public static void main(String[] args) { new MusicPlayer(); } public MusicPlayer() { init(); } public void init() { frame = new JFrame(); ("音乐播放器"); (400, 300); (false); (null); ; menubar = new JMenuBar(); menuFile = new JMenu("文件");

Java课程设计实验报告及全部源码流程图

课程设计 一、实验目的 1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 二、实验要求 1.问题描述准确、规范。 2.程序结构合理,调试数据准确、有代表性.。 3.界面布局整齐,人机交互方便。 4.输出结果正确。 5.正确撰写实验报告。 三、实验内容 编写一个GUI程序实现日历的功能。一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报

时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 四、实验步骤 1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4. 根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5.详细的上机实验步骤见任务分工及程序设计进度表。 五、实验结果 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能齐全、符合操作习惯。 下面是程序运行效果截图: 日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期,并能够选择背景图片):

Java基础实验报告-图形用户界面设计

南京工程学院 实验报告 课程名称 JAVA基础 实验项目名称图形用户界面设计 实验学生班级 实验学生姓名 学号 同组学生姓名 实验时间 实验地点 实验成绩评定 指导教师签字年月日

一、实验目的和要求 1.掌握Java Swing组建的使用方法,包括窗口、框架、对话框、面板、文本编辑框、按钮、组合框等多种布局方式,掌握窗口菜单和快捷菜单设计方式。 2.理解委托时间处理模型,掌握不同组件、不同事件的事件处理方法,设计出能够响应事件的Java图形用户界面。 3.熟悉在组件上绘图的方法。 二、实验题目 用表格存储并显示个人所得税税率表,给定一个月收入值,计算应缴的个人所得税。 三、实验方法与步骤(需求分析、算法设计思路、流程图等) 算法设计思路:本次实验题目为计算个人所得税,所以本人从网上找到了国家最新的税收政策,以下为截图:

因此,我设计了以下核心算法 public void actionPerformed(ActionEvent e) { if(e.getSource()==button_b) { double wage=Double.parseDouble((String)text_wage.getText()); double tax = 0; if(wage<=3500) tax=0; if(wage>3500&&wage<=5000) tax=(wage-3500)*0.03; if(wage>5000&&wage<=8000) tax=(wage-3500)*0.1-105; if(wage>8000&&wage<=12500) tax=(wage-3500)*0.2-555; if(wage>12500&&wage<=38500)

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

课程设计报告课程设计题目:java 音乐播放器 学生姓名: 专业:XXXXXXXXXXXXX 班级: 指导教师: 20XX 年X 月X 日

、课程设计目的 1、编程设计音乐播放软件,使之实现音乐播放的功能。 2、培养学生用程序解决实际问题的能力和兴趣。 3、加深java 中对多媒体编程的应用。 二、课程设计的要求 利用学到的编程知识和编程技巧,要求学生: 1、系统设计要能完成题目所要求的功能,设计的软件可以进行简单的播放及其他基本功能。 2、编程简练,可用,尽可能的使系统的功能更加完善和全面 3、说明书、流程图要清楚。 三、课程设计内容 1、课程设计的题目及简介 音乐播放软件要求: 有图形界面,能播放MP3 歌曲,有播放列表,前一首、后一首等常用播放软件功能。 2、设计说明 主要运用多媒体编程、图形界面、数组及循环进行设计,从而实现简单的音乐播放。 public MyMusicPlayer() :实现窗口的成员方法 publi c void run() :实现改变歌曲的播放状态的成员方法 :实现对声音的加载 public AudioClip loadSound(String ) :实现对按钮的监听 public void mouseClicked(MouseEvent e) public void itemStateChanged(ItemEvent arg0) :返回一个AudioClip 对象

3、程序流程图 * 出现界面 * 选择播放歌 曲 4、程序清单 import java.awt.*; import javax.swi ng.*; import java.applet.*; import java.awt.eve nt.* import java .n et.*; public class MyMusicPIayer exte nds Thread impleme nts MouseListe ner,ltemListe ner{ JFrame Mai nF rame =new JFrame( "MyMusicPlayer" ); // 定义主窗体 JLabel songname =new JLabel(); //用标签显示状态 JButton last =new JButto n(); JButt on play =new JButt on();

JavaWeb课程设计实验报告

湖南科技大学计算机科学与工程学院 WEB编程课程设计报告 题目:网上购物商店 学号:1111111111 姓名: 1 指导老师: 1 完成时间:111111111

目录 一、设计内容 (3) 二、设计方法 (4) 1、网站的整体结构设计 (4) 2、网站设计的技术方案 (5) 3、网站的界面设计 (6) 三、实现方法 (8) 1、数据库的设计 (8) 2、网站具体的实现过程 (10) 开发环境: (10) 设计思路 (10) 四、心得体会 (11)

随着互联网时代的迅猛发展,人们的生活方式已经发生了翻天覆地的变化,传统的实体店购物方式已经不能满足人们的需求,传统购物方式购物不方便,非得出门才能购物,去到了实体店有不一定有自己满意的商品,有时候会浪费大量的时间和精力。 随着网络的全面覆盖,网上支付系统的逐步完善,物流业的快速兴起,网上购物已经成为了当今购物的潮流。 网上购物商店主要满足人们足不出户就能买到自己想要的物品的需要,同时也为商家省去了昂贵的门面租赁费用,而且商品还可以卖到全国各地,大大的扩大了客源又节省了成本。 网上购物商店主要有以下几个方面的功能: 顾客可以浏览整个网站的商品,可以再网站进行注册,注册之后可以登录并购买商品,同时也可以查看和修改自己的个人信息,为了安全的需求,还可以修改密码。 商家,也就是店主,管理员,可以管理网站所出售的所有商品,同时也可以对在网站进行注册的用户进行管理。 1、用户登录、注册功能 (1)注册功能:用户进入网站,如果有兴趣在该商店购买商品,那么用户就可以注册。 (2)登录功能。已经注册的用户可以登录,登录之后方可购买商品。 (3)查看、修改用户信息功能。 (4)修改密码,为了用户安全的需要,经常更换密码可以保证用户账户的安全。 2、购物功能 (1)物品浏览:顾客进入网站,就可以浏览网站的商品。 (2)商品购买:顾客注册自己的账户,并登录之后就可以在网站购买商品了。购买商品的步骤如下; a)添加商品到购物车 b)确定购买 3、商品管理:管理网站所出售的商品。 4、用户管理:管理员对在网站注册的用户进行管理。 5、订单管理:对用户的订单进行管理。

oracle设计实验报告材料

课程设计 课程题目:ORACLE应用系统设计设计题目:音像店信息管理系统 专业:计算机科学与技术 班级:计131 组员:李霆桑珠扎西虞洲 学号: 130761 130767 130762 日期: 2016-03-04 信息工程学院计算机科学与技术

目录 一.课程目的………………………………………………………. 二.题目要求……………………………………………………… 三.日期安排………………………………………………………. 四.组内分工……………………………………………………… 五.实验条件......................................................... ........................... 六.实验内容......................................................... ........................... (1)第一部分:Oracle管理技术……………………………………… 1.数据库管理…………………………………………………….. 2.角色和用户管理………………………………………………... 3.表和视图管理………………………………………………….. 4.索引和序列管理………………………………………………... 5.PL/SQL编程…………………………………………………… 6.使用游标、存储过程和触发器………………………………… 7.表空间管理……………………………………………………… 8.文件管理………………………………………………………… (2)第二部分:Oracle开发技术……………………………………….. ①数据库设计………………………………………………………………… ②界面设计.................................................... ③结果测试…………………………………………………………………… 七.问题及解决…………………………………………………….. 八.总结...............................................

基于java的音乐播放器课程设计报告

Java课程设计报告题目:java音乐播放器 姓名 学号 院系 班级 专业 任课教师

1.设计内容及要求 能够实现简单的音乐播放器功能,如:打开本地文件,播放,暂停,停止,背景播放,单曲循环等等,界面充实,交互友好,可以添加 多首歌曲目录 一个简单的基于java语言的音乐播放器,菜单栏:文件,播放控制和播放列表,文件菜单包含打开、循环和退出三个菜单项;播放控 制菜单包含播放、暂停和停止三个菜单项,播放列表菜单则是当向里面 添加歌曲之后才能够查看到里面所包含的歌曲目录。当播放歌曲时,可 以调节音量大小或者设置是否静音;可以查看当前播放音乐的相关属 性,如:歌曲名,歌手,发布时间,所属专辑等等。 2.需求分析 1、时间跟踪条:根据歌曲播放的进度,控制条自动进行追踪,用户可以 随时了解歌曲的播放进度 2、音量控制键:可以点击该控键进行音量大小的调节以及是否静音的设 置 3、属性查询键:通过该控键,用户可以查看当前播放音乐的相属性,获 取关于该歌曲的用户所需的相关信息。 4、菜单栏: ①文件: 打开:用户通过该菜单项打开本地音乐文件,听任何用户想 听的歌曲 循环:通过循环设置,用户可以重复的播放一首喜欢的歌曲 退出:退出音乐播放器,及退出该程序

②播放控制: 播放:选择歌曲之后,通过点击播放菜单项启动播放器播放音乐 暂停:暂停当前正在播放的音乐 停止:停止当前正在播放的音乐 ③播放列表:当用户通过文件打开本地音乐文件后,及相当于在 播放列表里面添加了歌曲,及形成相应的歌曲播放目录 3.总体设计 结合需求分析来看,整个设计包含了简单的菜单栏,根据用户需求设置了三个简单的实现基本操作的菜单,分别是:文件,播放控制, 播放列表;根据具体的操作每个菜单还包含了相应的菜单项,文件:打 开,循环,退出;播放控制:播放,暂停,停止;播放列表则没有菜单 项,该菜单就是用来显示或者查看相应的歌曲目录的。 该音乐播放器设置了两个窗口,运行程序时打开的初始化欢迎界面,用户可以根据自己的需求进行菜单栏里面的基本操作和相应的设 置,当用户添加或者打开音乐播放文件的时候,程序将会显示出第二个 音乐文件播放窗口,与此同时,第一个初始化窗口将会自动隐藏,在音 乐播放窗口里面用户可以进行相关的音乐播放的控制操作。 当用户进入音乐播放窗口时,该窗口有几个快捷控制的控键:时间追踪轴:可以实现播放的前进、后退功能,根据用户需求调节音乐的 播放进度等;音量控制:设置静音,打开扬声器或者调节音量大小;播 放列表:查看当前播放音乐的相关属性。

java课程设计实验报告

Java课程设计实验报告实验题目:打字游戏小程序 专业:计算机科学与技术系 班级:1202班 成员:

Java课程设计(打字游戏小程序) 一、课程设计目的 经过一学期的java学习,能灵活运用书中和实验中所学习的各类知识和技巧,并且能在程序开发中得以很好的运用和发挥。在以后的学习和工作中,可以从中获取很好的经验,并且锻炼自己开发程序和创新的意识。 二、课程设计内容 1.课程设计简介 设计的是一个打字的小游戏,屏幕上不断地有英文字母下落,键盘输入字母,屏幕上与输入的字母形同的就会消失,并计分,如果有没有消去的字母掉到屏幕底,将扣分。 2.设计说明 因为要进行键盘操作,所以引用了event包,还要注册事件监听。字母是随机产生的,又要用。注册了线程。还要对窗口定义坐标,防止字母出现在同一位子。并且通过一位数组来给随机出现的字母做坐标定义。主要通过一位数组来控制字母的坐标,并且通过字母坐标的改变来对整个游戏的流程进行控制。 3.设计流程图 4.实现功能 随机产生字母,运用了键盘操作当按对屏幕中出现的字母时,该字母全部消失,并且在分数上相应的增加或减少。 5.详细设计(源代码) 1) packageDownCharGame; import import import /** *下落的字母实体类 *@authorshenbf * */ publicclassCharEntity{ raw(g); } etY()>=480){ etX((int)()*580)+30); chs[i].setY(0);

chs[i].setColor(newColor((int)()*256), (int)()*256),(int)()*256))); chs[i].setCh((char)(65+(int)()*26))); } chs[i].down(); } repaint();tart(); } publicvoidkeyTyped(KeyEvente){ } publicvoidkeyPressed(KeyEvente){ } publicvoidkeyReleased(KeyEvente){ etCh()||key==chs[i].getCh()+32){ etY()

大学大一c语言程序设计实验室上机题全部代码答案(实验报告)汇编

C语言实验报告 实验1-1: hello world程序: 源代码: #include main() { printf("hello world!\n"); system("pause"); } 实验1-2: 完成3个数据的输入、求和并输出计算结果的程序: 源代码: #include main() { int i,j,k,sum; scanf("%d%d%d",&i,&j,&k); sum=i+j+k; printf("sum=%d",sum); system("pause"); 实验1-3: 在屏幕上输出如下图形: A BBB CCCCC 源代码: #include main() { printf(" A\n"); printf(" BBB\n"); printf(" CCCCC\n"); system("pause"); } 实验2-1: 计算由键盘输入的任何两个双精度数据的平均值 源代码: #include

main() { double a,b; scanf("%lf%lf",&a,&b); printf("%.1lf\n",(a+b)/2); system("pause"); } 实验2-2: 写一个输入7个数据的程序,把输入的数据代入a + b * (c – d ) / e * f – g 表达式进行运算源代码: #include main() { float a,b,c,d,e,f,g,x; scanf("%f%f%f%f%f%f%f",&a,&b,&c,&d,&e,&f,&g); x=a + b * (c - d ) / e * f - g; printf("x=%f",x); system("pause"); } 实验2-3: 编写一个C语言程序,测试下列各表达式: i, j i + 1 , j + 1 i++ , j++ ++i , ++j i+++++j 源代码: #include main() { int i=1,j=1; printf("%d %d\n",i+1,j+1); printf("%d %d\n",i++,j++); printf("%d %d\n",++i,++j); printf("%d\n",(i++)+(++j)); system("pause"); } 实验2-4: 输入存款金额money,存期year和年利率rate,根据下列公式计算存款到期时的利息interest (税前),输出时保留2位小数。 interest = money(1+rate)year - money

Web界面设计实验报告

实验报告 课程名称:Web语言及XML程序设计实验项目:Web网页设计及XML编程专业班级: 姓名:学号: 实验室号:实验组号: 实验时间:批阅时间: 指导教师:成绩:

沈阳工业大学实验报告 题目:xx大学学生信息管理系统 于光亚负责:WEB网页界面设计 专业班级:学号:姓名: 实验名称: 附件A 沈阳工业大学web实验报告 ——xx大学学生信息管理系统 实验步骤或程序: 1.绪论:这次课程设计所制作的网站中分为五个板块,教师登陆、教师注册、学生成绩、学生信息管理、学生注册,通过这个网站,用户可以访问XX大学学生信息,及特权用那户对网页部分信息的管理。但网站有些简单,功能也不全面,功能实现有限。 2.布局介绍:网站下分为五个板块,分别为教师登陆、教师注册、学生成绩、学生信息管理、学生注册。整体结构如下

3.各页面设计: 3.1主页 预览: 功能实现:主页简单明了,突出登陆界面,网页功能及主意事项,插入图片动画增强美观,以上功能均以代码实现,均可根据要求做出调整。 3.2教师注册页: 预览:

功能实现:在主页点击教师注册,进入本页,实现简单的注册、提交功能,界面设计突出功能,实用性为主。 3.3学生注册页 预览:

功能实现:在主页点击学生注册,进入本页,罗列学生注册信息,同样实现简单的注册、提交功能,界面设计突出功能,实用性为主。 3.4学生成绩页 预览: 功能实现:通过主页登录,可进入学生成绩页面,实现通过学号、班级的输入完成学生成绩的搜索,教师用户还可对学生西成绩进行修改,本页还附带百度搜索、教师功能、学生功能等超链接,完善用户需求。 3.5学生信息管理页 预览:

音乐播放器java源代码

package com.ding.player; import java.io.File; import java.io.IOException; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.DataLine; import javax.sound.sampled.SourceDataLine; public class Player { private String path;//文件路径 private String name;//文件名称 private AudioFormat audioFormat;//播放格式 private AudioInputStream audioInputStream;//音乐播放输入流 private SourceDataLine sourceDataLine;// 播放设备 private boolean isStop = false;// 播放停止标志 /** * 创建对象时需要传入播放路径及文件名称 * @param path * @param name */ public Player(String path ,String name) { this.path = path; https://www.sodocs.net/doc/bb9075787.html, = name; } /** * 播放音乐 */ public void play() { File file = new File(path + name); try { //获取音乐播放流 audioInputStream = AudioSystem.getAudioInputStream(file); //获取播放格式 audioFormat = audioInputStream.getFormat(); /*System.out.println("取样率:"+ audioFormat.getSampleRate());

相关主题