Java swing仿酷狗音乐播放器
程序员文章站
2023-12-22 13:37:52
今天给大家介绍下用java swing开发一款音乐播放器,高仿酷狗音乐播放器,完整源码地址在最下方,本文只列出部分源码,因为源码很多,全部贴不下,下面还是老规矩。来看看运行...
今天给大家介绍下用java swing开发一款音乐播放器,高仿酷狗音乐播放器,完整源码地址在最下方,本文只列出部分源码,因为源码很多,全部贴不下,下面还是老规矩。来看看运行结果:
下面我们来看看代码:
首先看一下主窗口的实现代码:
package com.baiting; import java.awt.dimension; import java.awt.toolkit; import com.baiting.menu.closewindow; /** * 窗口 * @author lmq * */ public abstract class musicwindow extends music { protected musicframe musicframe; private string title; private int locationx; private int locationy; public musicwindow() { title = getconfigmap().get("title").tostring(); defaultlocation(); } public musicwindow(string title,int width,int height) { this.title = title; setwidth(width); setheight(height); defaultlocation(); } public musicwindow(string title,int width,int height,int locationx,int locationy) { this.title = title; setwidth(width); setheight(height); this.locationx = locationx; this.locationy = locationy; } private void defaultlocation() { dimension screensize = toolkit.getdefaulttoolkit().getscreensize(); locationx = (screensize.width-getwidth())/2; locationy = (screensize.height-getheight())/2; } protected musicframe createwindow() { musicframe = new musicframe(); musicframe.settitle(title); musicframe.setsize(getwidth(), getheight()); //musicframe.setlocation(locationx, locationy); musicframe.setlocationrelativeto(null); musicframe.addwindowlistener(new closewindow()); musicframe.setminimumsize(new dimension(600, 450)); musicframe.setvisible(true); return musicframe; } public string gettitle() { return title; } public void settitle(string title) { this.title = title; } public int getlocationx() { return locationx; } public void setlocationx(int locationx) { this.locationx = locationx; } public int getlocationy() { return locationy; } public void setlocationy(int locationy) { this.locationy = locationy; } }
看看在线下载歌曲的代码:
package com.baiting.service; import java.io.bufferedreader; import java.io.bufferedwriter; import java.io.file; import java.io.filenotfoundexception; import java.io.filereader; import java.io.filewriter; import java.io.ioexception; import java.util.arraylist; import java.util.list; import com.baiting.bean.downfailsong; import com.baiting.bean.downedsong; import com.baiting.http.downloadsong; import com.baiting.util.stringutil; public class downloadsongservice extends musicservice { private static downloadsongservice instance; private static thread downloadthread; private downloadsongservice() { } public static downloadsongservice getinstance() { if(null == instance) { instance = new downloadsongservice(); } return instance; } public void startdownload() { if(null == downloadthread) { downloadthread = new thread(new downloadsong()); downloadthread.start(); } else { if(!downloadthread.isalive()) { downloadthread.interrupt(); downloadthread = null; downloadthread = new thread(new downloadsong()); downloadthread.start(); } } } public list<downedsong> getdownedsongall() { file downedlistfile = new file(getbasepath()+download_path+"downed.list"); if(!downedlistfile.exists()) { try { log.info("downed.list文件不存在,正在创建...."); downedlistfile.createnewfile(); log.info("downed.list文件创建[成功]...."); } catch (ioexception e) { log.info("downed.list文件创建[失败--异常]...."); e.printstacktrace(); downedlistfile = null; return null; } } try { bufferedreader reader = new bufferedreader(new filereader(downedlistfile)); string line = reader.readline(); list<downedsong> list = new arraylist<downedsong>(); int count = 0; if(!stringutil.isempty(line)) { while(line != null) { count++; string content = line.replace("\n", "").trim(); string[] cols = content.split(separator); if(cols.length>5) { downedsong downedsong = new downedsong(); downedsong.setno(count); downedsong.setfilename(cols[0].trim()); downedsong.setsongname(cols[1].trim()); downedsong.setsinger(cols[2].trim()); downedsong.setfilesize(double.parsedouble(cols[3].trim())); downedsong.setpath(cols[4].trim()); downedsong.setcreatetime(cols[5].trim()); list.add(downedsong); downedsong = null; } line = reader.readline(); } } reader.close(); reader = null; if(list.size()>0) { return list; } return null; } catch (filenotfoundexception e) { log.info("文件不存在..."); e.printstacktrace(); return null; } catch (ioexception e) { e.printstacktrace(); return null; } finally { downedlistfile = null; } } /** * 扫描目录---未完成 * @return */ public list<downedsong> getdownedsongbydir() { string downedsongdir = getdownloadsongpath(); file downeddir = new file(downedsongdir); if(downeddir.exists() && downeddir.isdirectory()) { string[] filelist = downeddir.list(); for (int i = 0; i < filelist.length; i++) { } } return null; } /** * 判断歌曲是否存在(通过歌曲名和歌手) * @param songname * @param singer * @return */ public boolean existsongbyinfo(string songname,string singer) { list<downedsong> list = getdownedsongall(); if(null == list || list.size()<1) { return false; } boolean flag = false; for(downedsong downedsong : list) { if(downedsong.getsongname().equals(songname) && downedsong.getsinger().equals(singer)) { flag = true; break; } } list = null; return flag; } /** * 已下载列表中加入新数据 * @param downedsong * @return */ public int adddownedsong(downedsong downedsong) { file downedlistfile = new file(getbasepath()+download_path+"downed.list"); if(!downedlistfile.exists()) { try { log.info("downed.list文件不存在,正在创建...."); downedlistfile.createnewfile(); log.info("downed.list文件创建[成功]...."); } catch (ioexception e) { log.info("downed.list文件创建[失败--异常]...."); e.printstacktrace(); downedlistfile = null; return -1; } } if(null != downedsong) { string contents = downedsong.getfilename()+separator+ downedsong.getsongname()+separator+downedsong.getsinger()+separator+ downedsong.getfilesize()+separator+downedsong.getpath()+separator+ downedsong.getcreatetime()+"\n"; try { bufferedwriter writer = new bufferedwriter(new filewriter(downedlistfile,true)); writer.write(contents); writer.flush(); writer.close(); writer = null; list<downedsong> lists = getdownedsongall(); int count = lists.size(); lists = null; return count; } catch (ioexception e) { log.info(downedlistfile.getname()+"文件信息写入[失败---异常]"); e.printstacktrace(); return -1; } finally { downedlistfile = null; downedsong = null; } } return -1; } /** * 获取所有下载失败的歌曲 * @return */ public list<downfailsong> getdownfailsongall() { file downedlistfile = new file(getbasepath()+download_path+"downfail.list"); if(!downedlistfile.exists()) { try { log.info("downfail.list文件不存在,正在创建...."); downedlistfile.createnewfile(); log.info("downfail.list文件创建[成功]...."); } catch (ioexception e) { log.info("downfail.list文件创建[失败--异常]...."); e.printstacktrace(); downedlistfile = null; return null; } } try { bufferedreader reader = new bufferedreader(new filereader(downedlistfile)); string line = reader.readline(); list<downfailsong> list = new arraylist<downfailsong>(); int count = 0; if(!stringutil.isempty(line)) { while(line != null) { count++; string content = line.replace("\n", "").trim(); string[] cols = content.split(separator); if(cols.length>3) { downfailsong failsong = new downfailsong(); failsong.setno(count); failsong.setsongname(cols[0].trim()); failsong.setsinger(cols[1].trim()); failsong.setformat(cols[2].trim()); failsong.setfailtime(cols[3].trim()); list.add(failsong); } line = reader.readline(); } } reader.close(); reader = null; if(list.size()>0) { return list; } return null; } catch (filenotfoundexception e) { log.info("文件不存在..."); e.printstacktrace(); return null; } catch (ioexception e) { e.printstacktrace(); return null; } catch (exception e) { e.printstacktrace(); return null; } finally { downedlistfile = null; } } /** * 已下载列表中加入新数据 * @param downedsong * @return */ public int adddownfailsong(downfailsong downfailsong) { file downfaillistfile = new file(getbasepath()+download_path+"downfail.list"); if(!downfaillistfile.exists()) { try { log.info("downfail.list文件不存在,正在创建...."); downfaillistfile.createnewfile(); log.info("downfail.list文件创建[成功]...."); } catch (ioexception e) { log.info("downfail.list文件创建[失败--异常]...."); e.printstacktrace(); downfailsong = null; return -1; } } if(null != downfailsong) { string contents = downfailsong.getsongname()+separator+downfailsong.getsinger()+separator+ downfailsong.getformat()+separator+downfailsong.getfailtime()+"\n"; try { bufferedwriter writer = new bufferedwriter(new filewriter(downfaillistfile,true)); writer.write(contents); writer.flush(); writer.close(); list<downfailsong> lists = getdownfailsongall(); return lists.size(); } catch (ioexception e) { log.info(downfaillistfile.getname()+"文件信息写入[失败---异常]"); e.printstacktrace(); return -1; } catch (exception e) { e.printstacktrace(); return -1; } finally { downfailsong = null; contents = null; } } return -1; } /** * 删除下载失败的歌曲列表 * @param no * @return */ public boolean deldownfailsong(int no) { list<downfailsong> lists = getdownfailsongall(); if(null != lists && lists.size()>0 && lists.size()>=no && no>0) { downfailsong downfailsong = lists.get(no-1); log.info("删除下载失败的歌曲《"+downfailsong.getsongname()+"》"); lists.remove(downfailsong); stringbuffer strbuff = new stringbuffer(); if(null != lists && lists.size()>0) { for(downfailsong fs : lists) { string contents = fs.getsongname()+separator+fs.getsinger()+separator+ fs.getformat()+separator+fs.getfailtime()+"\n"; strbuff.append(contents); } } else { strbuff.append(""); } file downfaillistfile = new file(getbasepath()+download_path+"downfail.list"); if(!downfaillistfile.exists()) { try { log.info("downfail.list文件不存在,正在创建...."); downfaillistfile.createnewfile(); log.info("downfail.list文件创建[成功]...."); } catch (ioexception e) { log.info("downfail.list文件创建[失败--异常]...."); e.printstacktrace(); return false; } finally { lists = null; } } try { bufferedwriter writer = new bufferedwriter(new filewriter(downfaillistfile,false)); writer.write(strbuff.tostring()); writer.flush(); writer.close(); log.info("删除下载失败的歌曲《"+downfailsong.getsongname()+"》--成功---"); return true; } catch (ioexception e) { log.info(downfaillistfile.getname()+"文件信息写入[失败---异常]"); e.printstacktrace(); return false; } finally { lists = null; downfaillistfile = null; downfailsong = null; } } return false; } }
代码就贴这么多。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。