您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 基于java的音乐播放器的设计(源代码+实验报告)
主类MUSICPLAYER类:importjava.util.*;importjavax.swing.JSlider;importjava.awt.BorderLayout;importjava.awt.FlowLayout;importjava.awt.Point;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.MouseAdapter;importjava.awt.event.MouseEvent;importjava.io.BufferedOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.ObjectInputStream;importjava.io.ObjectOutputStream;importjava.io.Serializable;importjavax.media.ControllerEvent;importjavax.media.ControllerListener;importjavax.media.EndOfMediaEvent;importjavax.media.Manager;importjavax.media.MediaLocator;importjavax.media.NoPlayerException;importjavax.media.Player;importjavax.media.PrefetchCompleteEvent;importjavax.media.Time;importjavax.swing.ButtonGroup;importjavax.swing.DefaultListModel;importjavax.swing.ImageIcon;importjavax.swing.JButton;importjavax.swing.JFileChooser;importjavax.swing.JFrame;importjavax.swing.JList;importjavax.swing.JMenu;importjavax.swing.JMenuBar;importjavax.swing.JMenuItem;importjavax.swing.JOptionPane;importjavax.swing.JPanel;importjavax.swing.JRadioButtonMenuItem;importjavax.swing.JScrollBar;importjavax.swing.JScrollPane;importjavax.swing.filechooser.FileNameExtensionFilter;publicclassMusicPlayerimplementsActionListener,Serializable,ControllerListener{privatestaticfinallongserialVersionUID=1L;privateJFrameframe=null;privateJPanelcontrolPanel=null;privateJButtonbtnPlay=null;privateJButtonbtnPre=null;privateJButtonbtnNext=null;privateJScrollPanelistPane=null;privateJListlist=null;privateDefaultListModellistModel=null;privateJMenuBarmenubar=null;privateJMenumenuFile=null,menuAbout=null,menuMode=null;privateJMenuItemitemOpen,itemOpens,itemExit,itemAbout;privateJRadioButtonMenuItemitemSingle,itemSequence,itemRandom;privateListItemcurrentItem=null;privatestaticPlayerplayer=null;privatebooleanisPause=false;privateintmode;privateintcurrentIndex;privateImageIconiconPlay=newImageIcon(d:\\1.jpg);privateImageIconiconPre=newImageIcon(d:\\3.jpg);privateImageIconiconNext=newImageIcon(d:\\2.jpg);privateImageIconiconPause=newImageIcon(d:\\4.jpg);publicstaticvoidmain(String[]args){newMusicPlayer();}publicMusicPlayer(){init();}publicvoidinit(){frame=newJFrame();frame.setTitle(音乐播放器);frame.setSize(400,300);frame.setResizable(false);frame.setLocationRelativeTo(null);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);menubar=newJMenuBar();menuFile=newJMenu(文件);menuAbout=newJMenu(关于);menuMode=newJMenu(播放模式);itemOpen=newJMenuItem(添加文件);itemOpens=newJMenuItem(添加文件夹);itemExit=newJMenuItem(退出);itemAbout=newJMenuItem(关于);itemOpen.addActionListener(this);itemOpens.addActionListener(this);itemExit.addActionListener(this);itemAbout.addActionListener(this);itemSequence=newJRadioButtonMenuItem(顺序播放);itemSequence.setSelected(true);itemSingle=newJRadioButtonMenuItem(单曲循环);itemSequence.addActionListener(this);itemRandom=newJRadioButtonMenuItem(随机播放);itemRandom.addActionListener(this);itemSingle.addActionListener(this);ButtonGroupbg=newButtonGroup();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(newBorderLayout());controlPanel=newJPanel();controlPanel.setLayout(newFlowLayout());btnPlay=newJButton(iconPlay);btnPre=newJButton(iconPre);btnNext=newJButton(iconNext);btnPlay.addActionListener(this);btnPre.addActionListener(this);btnNext.addActionListener(this);controlPanel.add(btnPre);controlPanel.add(btnPlay);controlPanel.add(btnNext);listPane=newJScrollPane();listModel=load();list=newJList(listModel);if(list.getSelectedIndex()==-1&&listModel.size()0){currentItem=(ListItem)listModel.get(0);list.setSelectedIndex(0);currentIndex=0;}listPane.getViewport().add(list);list.addMouseListener(newMouseAdapter(){publicvoidmouseClicked(MouseEvente){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(newBorderLayout());frame.add(controlPanel,BorderLayout.NORTH);frame.add(listPane,BorderLayout.CENTER);frame.setVisible(true);};publicvoidactionPerformed(ActionEvente){if(e.getSource()==itemOpen){//addfilesJFileChooserjfc=newJFileChooser();FileNameExtensionFilterfilter=newFileNameExtensionFilter(音乐文件,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(Filef:files){ListItemitem=newListItem(f.getName(),f.getAbsolutePath());listModel.addElement(item);}}}elseif(e.getSource()==itemOpens){//addfilesinadirectoryJFi
本文标题:基于java的音乐播放器的设计(源代码+实验报告)
链接地址:https://www.777doc.com/doc-4778699 .html