Java swing仿酷狗音乐播放器

作者:明礼馨德 时间:2023-10-24 03:04:34 

今天给大家介绍下用Java swing开发一款音乐播放器, * 酷狗音乐播放器,完整源码地址在最下方,本文只列出部分源码,因为源码很多,全部贴不下,下面还是老规矩。来看看运行结果: 

Java swing仿酷狗音乐播放器

Java swing仿酷狗音乐播放器

Java swing仿酷狗音乐播放器

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;
}
}

代码就贴这么多。

来源:http://blog.csdn.net/llqqxf/article/details/51898965

标签:Java,swing,播放器
0
投稿

猜你喜欢

  • Java多线程实现Callable接口

    2022-09-01 17:53:54
  • C#文件路径操作详细总结

    2021-06-06 04:07:41
  • 如何解决springmvc文件下载,内容损坏的问题

    2023-10-11 07:12:10
  • Android仿Flipboard动画效果的实现代码

    2022-07-29 13:52:02
  • Spring框架学习之Cache抽象详解

    2023-07-20 17:37:47
  • 详解Android中使用Notification实现进度通知栏(示例三)

    2023-10-06 22:36:10
  • Android关于WebView中无法定位的问题解决

    2022-10-26 07:16:13
  • 一文详解C# Chart控件

    2023-01-20 03:50:04
  • Android BottomNavigationView结合ViewPager实现底部导航栏步骤详解

    2021-09-01 00:42:38
  • Java 面试题和答案 - (下)

    2023-10-03 04:46:47
  • c#实现sqlserver事务处理示例

    2022-03-28 19:39:50
  • spring boot security设置忽略地址不生效的解决

    2022-06-07 16:37:30
  • 一文带你掌握Spring Security框架的使用

    2021-12-02 09:41:00
  • 获取Android手机中所有短信的实现代码

    2023-08-04 16:55:30
  • java Socket实现网页版在线聊天

    2022-10-19 12:13:42
  • Android WebView基础应用详解

    2023-09-30 07:36:46
  • 详解Mybatis动态sql

    2023-09-16 15:41:38
  • 解决Spring Batch框架job任务只跑一次的问题

    2023-01-07 00:13:53
  • Struts2学习教程之拦截器机制与自定义拦截器

    2021-10-27 13:02:56
  • SpringMVC bean加载控制的实现分析

    2023-08-08 18:46:19
  • asp之家 软件编程 m.aspxhome.com