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

  • 格式:doc
  • 大小:97.50 KB
  • 文档页数:18

主类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();