基于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();