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;

}

}

代码就贴这么多。

以上是 Java swing仿酷狗音乐播放器 的全部内容, 来源链接: utcz.com/p/212801.html

回到顶部