zoukankan      html  css  js  c++  java
  • java写的音乐播放器

    这个是源码结构介绍

    这个是界面,有点简陋,见笑了,但是基本上的东西都有了,没办法,没有美工的程序写的界面就是很操蛋

    直接上源代码Player.java

    package com.service;
     
    import java.io.File;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Random;
     
    import javax.sound.sampled.*;
    import javax.swing.JSlider;
    import javax.swing.JTable;
    
    import com.list.MusicList;
    import com.list.ThreadList;
    import com.list.ViewList;
    import com.model.Model;
    import com.model.Music;
    import com.view.View;
     
    
    
    /*"duration"    
    "author"    
    "title"    
    "copyright"    
    "date"    
    "comment"*/
    public class Player extends Thread{
        
    
    
        private Player p;
        private long time = 0;
        
        Object lock = new Object();//一个空的对象,没什么意义
        
        private boolean paused = false;// 暂停 继续
        
        
        public boolean isPaused() {
            return paused;
        }
    
        public void setPaused(boolean paused) {
            this.paused = paused;
        }
        
         private JSlider jSliderPlayProgress;//播放进度条
    
    
        private boolean over = false;//开始 结束
        
        //是否自动播放下一曲
        private boolean isNext=true;
        
        
        private Music music;//音乐
        
        
        AudioInputStream din = null;
        SourceDataLine line=null;
        
        private FloatControl volume = null;
    
        private JSlider jSliderVolume; 
        
        public JSlider getjSliderVolume() {
            return jSliderVolume;
        }
    
        public void setjSliderVolume(JSlider jSliderVolume) {
            this.jSliderVolume = jSliderVolume;
        
            
        }
        public Player(JSlider jSliderVolume,JSlider jSliderPlayProgress) {
            super();
            this.jSliderVolume = jSliderVolume;
            this.jSliderPlayProgress=jSliderPlayProgress;
        }
    
    
        public Music getMusic() {
            return music;
        }
    
        public void setMusic(Music music) {
            this.music = music;
        }
        
           public FloatControl getVolume(){
                return volume;
            }
    
           
           
          //播放音乐
        public  void run(){
            
            AudioInputStream in=null;
            
            try {
                
                File file = new File(music.getPath());
            
                //播放不了的歌曲,直接下一首,并且在音乐列表中删除
                try {
                     in = AudioSystem.getAudioInputStream(file);
                } catch (Exception e) {
                    //删除有点小问题
                    MusicList.getList().remove(music.getId());
                    
                    ViewList.getList().get(0).getJt().setModel(new Model());
                    
                    
                    nextmusic();
                }
                
                AudioFormat baseFormat = in.getFormat();
                AudioFormat decodedFormat = new AudioFormat(
                        AudioFormat.Encoding.PCM_SIGNED,
                        baseFormat.getSampleRate(), 16, baseFormat.getChannels(),
                        baseFormat.getChannels() * 2, baseFormat.getSampleRate(),
                        false);
                if(baseFormat.getEncoding()==AudioFormat.Encoding.PCM_UNSIGNED || baseFormat.getEncoding()==AudioFormat.Encoding.ULAW ||
                        baseFormat.getEncoding()==AudioFormat.Encoding.ALAW || baseFormat.getEncoding()==AudioFormat.Encoding.PCM_SIGNED){
                             time=(file.length()*8000000)/((int)(decodedFormat.getSampleRate()*baseFormat.getSampleSizeInBits()));
                    }else{
                         int bitrate=0;
                         if(baseFormat.properties().get("bitrate")!=null){
                             //取得播放速度(单位位每秒)
                             bitrate=(int)((Integer)(baseFormat.properties().get("bitrate")));
                             if(bitrate!=0)
                             time=(file.length()*8000000)/bitrate;
                         }
                         
                    }
                
                
                din = AudioSystem.getAudioInputStream(decodedFormat, in);
                DataLine.Info info = new DataLine.Info(SourceDataLine.class, decodedFormat);
                line = (SourceDataLine) AudioSystem.getLine(info);
                line.open();
                setVolume();
                jSliderPlayProgress.setMaximum((int)time);
                jSliderPlayProgress.setValue(0);
                if(line!=null){
                    line.open(decodedFormat);
                    byte[] data = new byte[4096];
                    int nBytesRead;
                    
                synchronized (lock) {
                    while ((nBytesRead = din.read(data, 0, data.length)) != -1) {
                        while (paused) {
                            if(line.isRunning()) {
                                line.stop();
                                System.out.println("暂停");
                            }
                            try {
                                lock.wait();
                                System.out.println("等待");
                            }
                            catch(InterruptedException e) {
                            }
                        }
                        if(!line.isRunning()&&!over) {
                            System.out.println("开始播放");
                            line.start();
                            
                        }
                        
                        if (over&&line.isRunning()) {
                            System.out.println("停止播放");
                            jSliderPlayProgress.setValue(0);
                            isNext=false;
                            line.drain();
                            line.stop();
                            line.close();
                        }
                        
                        jSliderPlayProgress.setValue((int)line.getMicrosecondPosition());
                        line.write(data, 0, nBytesRead);
                    }
                    
            //根据播放模式选择下一首歌
                    nextmusic();
                }
                
            }
            
            }
            catch(Exception e) {
                e.printStackTrace();
            }
            finally {
                if(din != null) {
                    try { din.close(); } catch(IOException e) { }
                }
            }
        }
        
        //设置播放器滚动条
        public void setVolume()
        {
            if(line!=null)
            {
                if(line.isControlSupported(FloatControl.Type.MASTER_GAIN))
                 {
                    jSliderVolume.setEnabled(true);
                    volume= (FloatControl)line.getControl( FloatControl.Type.MASTER_GAIN );
                    jSliderVolume.setMinimum((int)volume.getMinimum());
                    jSliderVolume.setMaximum((int)volume.getMaximum());
                    //jSliderVolume.setValue((int)(volume.getMinimum()+(4*(volume.getMaximum()-volume.getMinimum()))/5));
                    volume.setValue((float)(volume.getMinimum()+(4*(volume.getMaximum()-volume.getMinimum()))/5));
                 }
            }
            else
            {
                 volume=null;
                 jSliderVolume.setEnabled(false);
            }    
        }
        private void nextmusic() {
            String mode=Setting.getMode();
            if (isNext&&!mode.equals("one")) {//单曲播放就不执行
                int nextid=0;//将要播放的id
                int currentid=Integer.parseInt(this.music.getId());
                System.out.println(mode);
                if (mode.equals("default")&&(currentid==MusicList.getList().size()-1)){
                    return;
                }
                
                if (mode.equals("rand")) {
                     Random random = new Random();
                     nextid=Math.abs(random.nextInt())%MusicList.getList().size();
                }else if (mode.equals("onecircle")) {
                    nextid=currentid;
                }else if (mode.equals("default")&&!(currentid==MusicList.getList().size()-1)) {
                     nextid=currentid+1;
                }else if (mode.equals("morecircle")) {
                    
                    nextid=(currentid==MusicList.getList().size()-1)?0:currentid+1;
                }
                JTable jTable=ViewList.getList().get(0).getJt();
                if(nextid==0){//第一个
                    
                    jTable.setRowSelectionInterval(0,0);
                    
                }else {
                        jTable.setRowSelectionInterval(nextid-1,nextid); 
                }
                      this.stopplay();
                      ThreadList.getList().clear();
                      p=new Player(jSliderVolume,jSliderPlayProgress);
                      p.setMusic(MusicList.getList().get(nextid));
                      ThreadList.getList().add(p);
                      p.start();
            }
        }
        
    
    
        //开始
        public void startplay(){
            over=false;
        }
        
        
        //停止
        
        public void stopplay(){
            over=true;
        }
        
        
        // 暂停
        public void userPressedPause() {
         paused = true;
        }
         
        //继续
        public void userPressedPlay() {
                 synchronized(lock) {
                      paused = false;
                      lock.notifyAll();
            }
    
        }
        
        public void Pause(){
            if (paused) {
                 synchronized(lock) {
                      paused = false;
                      lock.notifyAll();
                     }
            }else{
                 paused = true;
            }
            
        }
        
    
        
     
    }

    这个主要是播放音乐的类,播放,暂停,停止,上一首,下一首都有了

     View.java

    package com.view;
    
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Component;
    import java.awt.Container;
    import java.awt.Dimension;
    import java.awt.GridLayout;
    import java.awt.Image;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowListener;
    import java.io.File;
    import java.io.IOException;
    import java.net.URI;
    import java.net.URL;
    import java.util.ArrayList;
    
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JComponent;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JRootPane;
    import javax.swing.JScrollPane;
    import javax.swing.JSlider;
    import javax.swing.JTable;
    import javax.swing.ListSelectionModel;
    import javax.swing.ScrollPaneConstants;
    import javax.swing.SwingConstants;
    import javax.swing.event.ChangeEvent;
    import javax.swing.event.ChangeListener;
    import javax.swing.table.TableCellRenderer;
    
    
    
    import com.list.MusicList;
    import com.list.ThreadList;
    import com.list.ViewList;
    import com.model.Model;
    import com.model.Music;
    import com.service.Player;
    import com.service.Setting;
    import com.util.DirInput;
    import com.util.FileInput;
    import com.util.FileList;
    import com.util.List_File;
    
    
    public class View extends JFrame implements MouseListener,ActionListener,WindowListener {
        
        private JButton stop, open,del,next,pre;
        private  Player p;
        private JPanel[] jPanels;
        private MusicList list;
        //private Long clickTime=0l;
        private JScrollPane jsp;
        private JTable jt;
        private JRootPane j;
        private Model model;
        private JSlider jSliderVolume;
        private JSlider jSliderPlayProgress;
        private FileInput fileinput;
        private DirInput dirInput;
        private JMenuBar jb;
        private JMenu jm;
        private JMenuItem fm,dm;
        private JComboBox jBox;
       
        
        public View(){
            System.out.println(ViewList.getList().size());
            if (ViewList.getList().size()==0) {
                Open();
            }
        }
    
        
        
        private void Open() {
            
            //this.getRootPane().setWindowDecorationStyle(JRootPane.NONE);
            
            
            //this.setUndecorated(true);
           //菜单选项
            
            jb=new JMenuBar();
            jm=new JMenu("打开");
            
            fm=new JMenuItem("文件");
            
            dm=new JMenuItem("文件夹");
            
            fm.addActionListener(this);
            dm.addActionListener(this);
            jb.add(jm);
            
            jm.add(fm);
            jm.add(dm);
            
            
            
            //this.setJMenuBar(jb);
            
            
            
            JPanel p1=new JPanel();
            JPanel p2=new JPanel();
            JPanel p3=new JPanel();
            
            //增加菜单选项
            j=new JRootPane();
            
            j.setJMenuBar(jb);
            
            
            p2.add(j);
            
            
             open=new JButton("播放");
             stop=new JButton("停止");
             open.addMouseListener(this);
             stop.addMouseListener(this);
             pre=new JButton("上一首");
             next=new JButton("下一首");
             pre.addMouseListener(this);
             next.addMouseListener(this);
            p1.setLayout(new GridLayout(2,1));
            
            JPanel jPanel2=new JPanel();
            
            jPanel2.add(open);
            jPanel2.add(stop);
            jPanel2.add(pre);
            jPanel2.add(next);
            
            p1.add(jPanel2);
            /*p1.add(open);
            p1.add(stop);
            p1.add(pre);
            p1.add(next);*/
            
            
            
            
            
            del=new JButton("删除");
            del.addMouseListener(this);
            
             jSliderPlayProgress = new JSlider();   //播放进度条
                jSliderPlayProgress.setValue(0);
                jSliderPlayProgress.setEnabled(false);
                jSliderPlayProgress.setPreferredSize(new Dimension(200, 20));
                
                
                p1.add(jSliderPlayProgress);
                
            
            jSliderVolume = new JSlider();   //音量进度条
            jSliderVolume.setValue(0);
             //jSliderPlayProgress.setEnabled(false);
            jSliderVolume.setPreferredSize(new Dimension(100, 20));//设置滚动条长度
             
             
             
            jSliderVolume.addChangeListener(new ChangeListener()
                {
                    public void stateChanged(ChangeEvent evt) 
                    {
                        System.out.println(jSliderVolume.getValue());
                        if (ThreadList.getList().size()!=0) {
                            ThreadList.getList().get(0).getVolume().setValue((float)jSliderVolume.getValue());
                        }
                        
                        
                    }
                });
            String[] v={"顺序播放","随机播放","单曲循环","列表循环","单曲播放"};
            
            jBox=new JComboBox(v);
            
            jBox.addActionListener(this);
                
            p2.add(jBox);        
            p2.add(del);
            
            
             p2.add(jSliderVolume);
            
            jPanels=new JPanel[list.getList().size()];
            
            for (int i = 0; i < list.getList().size(); i++) {
                
                Music music=list.getList().get(i);
                
                JPanel jPanel=new MyJPanel(music);
                
                
                JLabel jLabel=new JLabel(music.getName(),SwingConstants.CENTER);
                jLabel.setSize(300, 10);
                jLabel.setHorizontalTextPosition(JLabel.CENTER);
                
                jPanel.setBackground(Color.WHITE);
                
                jPanels[i]=jPanel;
                
                jPanel.addMouseListener(this);
                
                jPanel.add(jLabel);
                
                
                
                p3.add(jPanel);
                
                
            }
            
            
            p3.setBackground(Color.WHITE);
            
            p3.setLayout(new GridLayout(10, 1));
            
            p3.setSize(320, 500);
            
            
            this.add(p1,BorderLayout.NORTH);
            this.add(p2,BorderLayout.SOUTH);
            
            
                
                
            
            
            model=new Model();            //添加表
            
            jt=new JTable(model){ // 设置jtable的单元格为透明的
                   public Component prepareRenderer(TableCellRenderer renderer,
                             int row, int column) {
                            Component c = super.prepareRenderer(renderer, row, column);
                            if (c instanceof JComponent) {
                             ((JComponent) c).setOpaque(false);
                            }
                            return c;
                           }
                          };;
                          
            jt.setOpaque(false);
            
            jt.setRowHeight(30);
            jt.setSelectionMode(ListSelectionModel.SINGLE_SELECTION );
            jt.setShowHorizontalLines(false);
            jt.setSelectionBackground(new Color(189,215,238));
            jt.addMouseListener(this);
            
            jsp = new JScrollPane(jt);
            
            jsp.setOpaque(false);
            jsp.getViewport().setOpaque(false);
            
            
            //addmusic();
            
            //this.add(p3,BorderLayout.CENTER);
            
            this.add(jsp,BorderLayout.CENTER);
            
            
            this.setDefaultCloseOperation(EXIT_ON_CLOSE);
            
            this.addWindowListener(this);
            
            Image image=this.getToolkit().getImage("img/icon.jpg");
            
            this.setIconImage(image);
            
            this.setTitle("音乐播放器");
            
              ImageIcon icon = new ImageIcon("img/bg.jpg"); 
              JLabel lab = new JLabel(icon); // 将图片放入到label中
              lab.setBounds(0, 0, icon.getIconWidth(), icon.getIconHeight()); // 设置放有图片的label的位置
              
              this.getContentPane().add(lab, -1); // jthis本身是窗体,不能放置任何组件,用getContentPane()方法得到this的默认内容面板,将lab放入其中,-1表示放入面板的下层
              this.getContentPane().add(jsp, 0); // 0表示放在面板的最顶层
              Container con = this.getContentPane();
              ((JPanel)con).setOpaque(false); // 设置面板为透明的
              p2.setOpaque(false);
             jSliderVolume.setOpaque(false);
             jPanel2.setOpaque(false);
             p1.setOpaque(false);
             p3.setOpaque(false);
             jSliderPlayProgress.setOpaque(false);
            this.setLocation(400, 200);
            this.setSize(337, 525);
            this.setResizable(false);
            this.setVisible(true);
        }
        
        @Override
        public void mouseClicked(MouseEvent e) {
            
            System.out.println("开始播放");
            
            if (e.getSource()==open) {
                
                if (p==null) {//开始
                  p=new Player(jSliderVolume,jSliderPlayProgress);
                  p.setMusic(MusicList.getList().get(0));
                  jt.setRowSelectionInterval(0,0);
                  ThreadList.add(p);
                  open.setText("暂停");
                  p.start();
                }else{//继续
                    if (ThreadList.getList().size()!=0) {
                        p=ThreadList.getList().get(0);
                    }
                    
                    String s=p.isPaused()?"暂停":"播放";
                    open.setText(s);
                    p.Pause();
                }
                
            }else if (e.getSource()==stop) {
                if (ThreadList.getList().size()!=0) {
                    p=ThreadList.getList().get(0);
                }
                if (p!=null) {
                    p.stopplay();
                    p=null;
                    open.setText("播放");
                }
            
                
            }else if (e.getSource()==pre) {//上一首
                premusic();
    
            }else if (e.getSource()==next) {//下一首
                nextmusic();
            }else if (e.getSource()==del) {
                
                delmusic();
                      
            }else if (e.getSource()==jt&&e.getClickCount()==2) {//双击
                
                clickmusic();
                
                
                
            }
    
            
        }
    
        private void clickmusic() {
            //双击Jtable
            System.out.println("点击了");
            
            int rowNum = this.jt.getSelectedRow();
            System.out.println(rowNum);
            if(rowNum == -1) {
                JOptionPane.showMessageDialog(this, "你没有选择一项");
                return;
            }
            ArrayList<Player> list=ThreadList.getList();
            
            
            System.out.println(list.size()+"音乐文件数目");
            
             if (list.size()==0) {
                 
                 p=new Player(jSliderVolume,jSliderPlayProgress);
                  p.setMusic(MusicList.getList().get(rowNum));
                  ThreadList.add(p);
                  open.setText("暂停");
                  p.start();
            }else{
                System.out.println("停止");
            list.get(0).stopplay();
            list.clear();
            p=new Player(jSliderVolume,jSliderPlayProgress);
                p.setMusic(MusicList.getList().get(rowNum));
                open.setText("暂停");
                list.add(p);
                p.start();
            }
        }
    
        private void delmusic() {
            int rowNum = this.jt.getSelectedRow();
            
            
            MusicList.getList().remove(rowNum);
            
            System.out.println(MusicList.getList().size());
            
            jt.setModel(new Model());
    
            
               ArrayList<Player> list=ThreadList.getList();
               p=new Player(jSliderVolume,jSliderPlayProgress);
               System.out.println(list.size()+"大小");
               if (list.size()!=0) {
                    list.get(0).stopplay();
                    list.clear();
                    open.setText("暂停");
                    if(rowNum==0){//第一个
                        System.out.println("第一个");
                                  jt.setRowSelectionInterval(0,0);
                                p.setMusic(MusicList.getList().get(rowNum));
                                
                               
                    }else if(rowNum==MusicList.getList().size()){//最后一个
                            System.out.println("最后一个");
                              
                              jt.setRowSelectionInterval(rowNum-2,rowNum-1);
                                p.setMusic(MusicList.getList().get(rowNum-1));
                                
                    }else {
                        System.out.println("中间");
                        
                              jt.setRowSelectionInterval(rowNum-1,rowNum);
                            p.setMusic(MusicList.getList().get(rowNum));
                                
                    }
                     list.add(p);
                     p.start();
               }
        }
    
        public JTable getJt() {
            return jt;
        }
    
        private void premusic() {
            System.out.println("上一首");
            
            ArrayList<Player> list=ThreadList.getList();
            
            int id=Integer.parseInt(list.get(0).getMusic().getId());
            
            if(id!=0){
            if (id==1) {
                jt.setRowSelectionInterval(0,0);
            }else{
                jt.setRowSelectionInterval(id-2,id-1);
            }
            System.out.println(id);
            
            list.get(0).stopplay();
            list.clear();
            
              p=new Player(jSliderVolume,jSliderPlayProgress);
    
              p.setMusic(MusicList.getList().get(id-1));
              System.out.println(id-1);
              
              open.setText("暂停");
              list.add(p);
              p.start();
            }
        }
    
        private void nextmusic() {
            System.out.println("下一首");
            ArrayList<Player> list=ThreadList.getList();
            int id=Integer.parseInt(list.get(0).getMusic().getId());
            
            System.out.println(id);
            if(id!=MusicList.getList().size()-1){ //122
                
            jt.setRowSelectionInterval(id,id+1);  //123条
            
            list.get(0).stopplay();
            list.clear();
            
            p=new Player(jSliderVolume,jSliderPlayProgress);
            
              p.setMusic(MusicList.getList().get(id+1));
              System.out.println(id+1);
              
              open.setText("暂停");
              list.add(p);
              p.start();
    }
        }
       //判断双击
    /*    private boolean checkClickTime() {
            long nowTime = (new Date()).getTime();
            if ((nowTime - clickTime) < 300) {
            clickTime = nowTime;
            return true;
            }
            clickTime = nowTime;
            return false;
            }*/
        
        private void addmusic(String path) {//增加mp3文件夹
            
            System.out.println("增加mp3文件夹");
            ArrayList<Music> musiclist=MusicList.getList();
                
                List_File fm = new List_File();
                ArrayList<String[]> FileList = fm.serachFiles(path);
                
                for (int i = 0; i < FileList.size(); i++) {
                    Music music= new Music();
                        music.setId(musiclist.size()+"");
                        String[] s=(String[]) FileList.get(i);
                        
                        music.setName(s[0]);
                        music.setPath(s[1]);
                    musiclist.add(music);
                }
                
                    jt.setModel(new Model());
            
        }
    
        @Override
        public void mouseEntered(MouseEvent e) {
            // TODO Auto-generated method stub
            
        }
    
        @Override
        public void mouseExited(MouseEvent e) {
            // TODO Auto-generated method stub
            
        }
    
        @Override
        public void mousePressed(MouseEvent e) {
            // TODO Auto-generated method stub
            
        }
    
        @Override
        public void mouseReleased(MouseEvent e) {
            // TODO Auto-generated method stub
            
        }
    
    
    
        @Override
        public void actionPerformed(ActionEvent e) {
            if (e.getSource()==fm) {//添加mp3文件
            if(fileinput==null)    fileinput = new FileInput(this);
                fileinput.open();
                File[] s=fileinput.getFiles();
                ArrayList<Music> musiclist=MusicList.getList();
                
                
                if(s!=null){
                    for(int i=0;i<s.length;i++){
                    Music music= new Music();
                    music.setId(musiclist.size()+"");
                    music.setName(s[i].getName());
                    music.setPath(s[i].getAbsolutePath());
                    musiclist.add(music);
                jt.setModel(new Model());
                    }
                }
            }else if (e.getSource()==dm) {
                
                
                if(dirInput==null) dirInput = new DirInput(this);
                
                dirInput.open();
                
                File s=dirInput.getFile();
                
                
                if(s!=null){
                        
                        addmusic(s.getAbsolutePath());
                    }
                
                
                
            }else if (e.getSource()==jBox) {
                //顺序播放 (默认)default   随机rand      单曲循环 onecircle       列表循环 morecircle      单曲播放  one  
                
            
          if (ThreadList.getList().size()!=0) {
            p=ThreadList.getList().get(0);
          }else {
              p=new Player(jSliderVolume,jSliderPlayProgress);
              ThreadList.getList().add(p);
          }
          
          String[] s={"default","rand","onecircle","morecircle","one"};
          
          Setting.setMode(s[jBox.getSelectedIndex()]);
            
            
            }
        }
    
    
    
        @Override
        public void windowActivated(WindowEvent e) {
            // TODO Auto-generated method stub
            
        }
    
    
    
        @Override
        public void windowClosed(WindowEvent e) {
            // TODO Auto-generated method stub
            System.out.println("关闭kk");
        }
    
    
    
        @Override
        public void windowClosing(WindowEvent e) {
            // TODO Auto-generated method stub
            System.out.println("close");
            
            if (MusicList.getList().size()!=0) {
                System.out.println("写入文件");
                //清空之前的内容
                FileList.clear("file/musiclist.txt");
                ArrayList<Music> list=MusicList.getList();
                for (int i = 0; i < list.size(); i++) {
                    FileList.writeFile("file/musiclist.txt",list.get(i).getId()+","+list.get(i).getName()+","
                            +list.get(i).getPath()+"
    ");
                }
                
            }
            
            
            
            
            
        }
    
    
    
        @Override
        public void windowDeactivated(WindowEvent e) {
            // TODO Auto-generated method stub
            
        }
    
    
    
        @Override
        public void windowDeiconified(WindowEvent e) {
            // TODO Auto-generated method stub
            
        }
    
    
    
        @Override
        public void windowIconified(WindowEvent e) {
            // TODO Auto-generated method stub
            
        }
    
    
    
        @Override
        public void windowOpened(WindowEvent e) {
            // TODO Auto-generated method stub
            System.out.println("open");
            
            File file=new File("file/musiclist.txt");
            
            if (file.exists()==false) {
                try {
                    file.createNewFile();
                } catch (IOException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }else {
    
    
                FileList.readFileByLines("file/musiclist.txt");
                jt.setModel(new Model());
            }
            
            
            
        }
    
    }

     剩下的代码在后面附件上有,现在主要是有几个小问题,第一,我还没有找到获取音乐文件具体信息比较好的办法,所以每一首暂时还没有歌手,作曲的信息,第二界面有点难看,见谅了,第三个是打包成jar文件会有路径问题,暂时还没办法解决,我是直接在myeclipse上运行,一切正常,就是打包有点小问题

    暂时先说这些了,这个是我业余时间的项目,有什么不足的,大家都可以提出来

    附件下载

  • 相关阅读:
    javaScript类型和对象
    极客时间买课全额返现
    极客时间返利课程返利文字版
    负责范围
    list查询
    缺件修改
    修改信息
    Windows系统解决占用端口问题
    mysql系列——常用的几十个函数详解(六)
    史上最全日期时间类讲解
  • 原文地址:https://www.cnblogs.com/xiaolai/p/3189672.html
Copyright © 2011-2022 走看看