激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - java實(shí)現(xiàn)簡(jiǎn)單音樂播放器

java實(shí)現(xiàn)簡(jiǎn)單音樂播放器

2019-06-28 14:25StrictModel Java教程

這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單音樂播放器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了java實(shí)現(xiàn)簡(jiǎn)單音樂播放器的具體代碼,供大家參考,具體內(nèi)容如下

主要是用到j(luò)ava中的swing技術(shù),以及JMFjar中的API 

備注:需要用JDK1.8才能播放音樂MP3 

package baidu;
 
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
import javax.media.bean.playerbean.*; //這個(gè)包要用到JMF
 
public class MP3 extends JFrame implements Runnable {
public JLabel shijian;
 
private JSlider sldDiameter;
 
public MediaPlayer soumd1;
 
public JButton playSound, loopSound, stopsound;
 
public JButton tjian, shanc, baocun, duqu;
 
public JPanel jp1, jp2, jp3, jp4;
 
public JList jl;
 
int zongmiao=0;
 
public Vector vector, mingcheng;
 
boolean fo = false, geshi = false;
 
JLabel jl1, jl2, sj1, sj2;
 
JTextField jt1, jt2;
 
JButton queding, xiugai;
 
int zong = 0;
 
int a = 0, b = 0, you = 1,mm=0;
 
int fenzhong, miaozhong;
 
public MP3() {
 super("java簡(jiǎn)單音樂播放器--嚴(yán)楷");
 soumd1 = new MediaPlayer();
 Container c = getContentPane();
 c.setLayout(new FlowLayout());
 mingcheng = new Vector();
 jp1 = new JPanel();
 shijian = new JLabel();
 jp1.add(shijian);
 c.add(jp1);
 playSound = new JButton("開始播放");
 loopSound = new JButton("循環(huán)播放");
 stopsound = new JButton("停止播放");
 jp2 = new JPanel();
 jp2.add(playSound);
 jp2.add(loopSound);
 jp2.add(stopsound);
 c.add(jp2);
 jp4 = new JPanel();
 sj1 = new JLabel();
 sj2 = new JLabel();
 sldDiameter = new JSlider(SwingConstants.HORIZONTAL, 0, 100, 0);
 sldDiameter.setMajorTickSpacing(1);
 sldDiameter.setPaintTicks(true);
 jp4.add(sj1);
 jp4.add(sldDiameter);
 jp4.add(sj2);
 c.add(jp4);
 vector = new Vector();
 jl = new JList(mingcheng);
 jl.setVisibleRowCount(5);
 jl.setFixedCellHeight(40);
 jl.setFixedCellWidth(265);
 jl.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
 c.add(new JScrollPane(jl));
 tjian = new JButton("添加");
 shanc = new JButton("刪除");
 duqu = new JButton("讀取");
 baocun = new JButton("保存");
 jp3 = new JPanel();
 jp3.add(tjian);
 jp3.add(shanc);
 jp3.add(baocun);
 jp3.add(duqu);
 c.add(jp3);
 
 try {
  String s =" C:/Users/Administrator/Music/卓依婷 - 萍聚.mp3";
  ObjectInputStream input = new ObjectInputStream(
   new FileInputStream(s));
  lujin a1 = (lujin) input.readObject();
  mingcheng = a1.b;
  vector = a1.a;
  jl.setListData(mingcheng);
 } catch (Exception e) {
  System.out.println("c盤沒有保存音樂文件");
  //e.printStackTrace();
 }
 
 baocun.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent event) {
  JFileChooser fileChooser = new JFileChooser(); // 實(shí)例化文件選擇器
  fileChooser
   .setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); // 設(shè)置文件選擇模式,此處為文件和目錄均可
  if (fileChooser.showSaveDialog(MP3.this) == JFileChooser.APPROVE_OPTION) { // 彈出文件選擇器,并判斷是否點(diǎn)擊了打開按鈕
   String fileName = fileChooser.getSelectedFile()
    .getAbsolutePath(); // 得到選擇文件或目錄的絕對(duì)路徑
   mmm(vector, mingcheng, fileName);
  }
  }
 });
 duqu.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent event) {
  JFileChooser fileChooser = new JFileChooser(); // 實(shí)例化文件選擇器
  fileChooser
   .setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); // 設(shè)置文件選擇模式,此處為文件和目錄均可
  if (fileChooser.showOpenDialog(MP3.this) == JFileChooser.APPROVE_OPTION) { // 彈出文件選擇器,并判斷是否點(diǎn)擊了打開按鈕
   String fileName = fileChooser.getSelectedFile()
    .getAbsolutePath(); // 得到選擇文件或目錄的絕對(duì)路徑
   try {
   ObjectInputStream input = new ObjectInputStream(
    new FileInputStream(fileName));
   lujin a1 = (lujin) input.readObject();
   mingcheng = a1.b;
   vector = a1.a;
   jl.setListData(mingcheng);
   } catch (Exception e) {
   e.printStackTrace();
   }
  }
  }
 });
 playSound.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent e) {
  if (jl.getSelectedIndex() >= 0) {
   String yy = (String) vector.get(jl.getSelectedIndex());
   File ff = new File(yy);
   if (ff.exists()) {
   if (yy.matches("[\\S\\s]*.mp3")|| yy.matches("[\\S\\s]*.MP3")) {
    if (soumd1 != null) {
    a = 0;
    b = 0;
    you = 0;
    soumd1.stop();
    }
     soumd1.setMediaLocation("file:/" + yy);
    fo = true;
    soumd1.start();
    geshi=true;
    try {
    Thread.sleep(500);
    } catch (InterruptedException eee) {
    }
    zongmiao=(int)soumd1.getDuration().getSeconds();
    if(zongmiao>10000)
    {
    try {
     Thread.sleep(500);
    } catch (InterruptedException ew) {
    }
    zongmiao=(int)soumd1.getDuration().getSeconds();
    }
    zongmiao=(int)soumd1.getDuration().getSeconds();
    String aa=fen(zongmiao);
     sj2.setText(aa);
   } else
    JOptionPane.showMessageDialog(null,
     "播放文件格式的有錯(cuò),無法播放 建議刪除");
   } else
   JOptionPane.showMessageDialog(null,
    "此歌曲文件已經(jīng)不存在,建議刪除");
  }
  else
   JOptionPane.showMessageDialog(null, "請(qǐng)選擇音樂文件");
  }
 });
 loopSound.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent e) {
  if (jl.getSelectedIndex() >= 0) {
   String yy = (String) vector.get(jl.getSelectedIndex());
   File ff = new File(yy);
   if (ff.exists()) {
   if (yy.matches("[\\S\\s]*.mp3")|| yy.matches("[\\S\\s]*.MP3")) {
    if (soumd1 != null) {
    a = 0;
    b = 0;
    you = 0;
    soumd1.stop();
    }
     soumd1.setMediaLocation("file:/" + yy);
    fo = true;
    soumd1.start();
    geshi=true;
    try {
    Thread.sleep(500);
    } catch (InterruptedException we) {
    }
    zongmiao=(int)soumd1.getDuration().getSeconds();
    if(zongmiao>10000)
    {
    try {
     Thread.sleep(500);
    } catch (InterruptedException we) {
    }
    zongmiao=(int)soumd1.getDuration().getSeconds();
    }
    zongmiao=(int)soumd1.getDuration().getSeconds();
    String aa=fen(zongmiao);
     sj2.setText(aa);
   } else
    JOptionPane.showMessageDialog(null,
     "播放文件格式的有錯(cuò),無法播放 建議刪除");
   } else
   JOptionPane.showMessageDialog(null,
    "此歌曲文件已經(jīng)不存在,建議刪除");
 
  }
  else
   JOptionPane.showMessageDialog(null, "請(qǐng)選擇音樂文件");
  }
 });
 stopsound.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent e) {
  a = 0;
  b = 0;
  you = 0;
  mm=0;
  geshi=false;
  fo = false;
  sldDiameter.setMaximum(100);
  sldDiameter.setValue(0);
  sj1.setText(null);
  sj2.setText(null);
  if (jl.getSelectedIndex() >= 0)
   soumd1.stop();
 
  }
 });
 tjian.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent event) {
  JFileChooser fileChooser = new JFileChooser(); // 實(shí)例化文件選擇器
  fileChooser
   .setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); // 設(shè)置文件選擇模式,此處為文件和目錄均可
  fileChooser.setCurrentDirectory(new File(".")); // 設(shè)置文件選擇器當(dāng)前目錄
  fileChooser
   .setFileFilter(new javax.swing.filechooser.FileFilter() {
    public boolean accept(File file) { // 可接受的文件類型
    String name = file.getName().toLowerCase();
    return name.endsWith(".mp3")
     || file.isDirectory();
    }
    public String getDescription() { // 文件描述
    return "音樂文件(*.mp3)";
    }
   });
  if (fileChooser.showOpenDialog(MP3.this) == JFileChooser.APPROVE_OPTION) { // 彈出文件選擇器,并判斷是否點(diǎn)擊了打開按鈕
   String fileName = fileChooser.getSelectedFile()
    .getAbsolutePath(); // 得到選擇文件或目錄的絕對(duì)路徑
   vector.add(fileName);
   StringBuffer buffer = daoxu(fileName);
   mingcheng.add(buffer);
  }
  }
 });
 shanc.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent event) {
  if (jl.getSelectedIndex() >= 0) {
   mingcheng.removeElementAt(jl.getSelectedIndex());
   vector.removeElementAt(jl.getSelectedIndex());
   jl.setListData(mingcheng);
  }
  }
 });
 jl.addMouseListener(new MouseAdapter() {
  public void mousePressed(MouseEvent event) {
  if (event.getClickCount() == 2) {
   if (jl.getSelectedIndex() >= 0) {
   String yy = (String) vector.get(jl.getSelectedIndex());
   File ff = new File(yy);
   if (ff.exists()) {
    if (yy.matches("[\\S\\s]*.mp3")|| yy.matches("[\\S\\s]*.MP3")) {
    if (soumd1 != null) {
     a = 0;
     b = 0;
     you = 0;
     soumd1.stop();
    }
      soumd1.setMediaLocation("file:/" + yy);
    fo = true;
    soumd1.start();
    geshi=true;
    try {
     Thread.sleep(500);
    } catch (InterruptedException e) {
    }
    zongmiao=(int)soumd1.getDuration().getSeconds();
    if(zongmiao>10000)
    {
     try {
     Thread.sleep(500);
     } catch (InterruptedException e) {
     }
    zongmiao=(int)soumd1.getDuration().getSeconds();
    }
    String aa=fen(zongmiao);
      sj2.setText(aa);
    } else
    JOptionPane.showMessageDialog(null,
     "播放文件格式的有錯(cuò),無法播放 建議刪除");
   } else
    JOptionPane.showMessageDialog(null,
     "此歌曲文件已經(jīng)不存在,建議刪除");
 
   }
  }
  if (event.isMetaDown()) {
   if (jl.getSelectedIndex() >= 0) {
   int a = jl.getSelectedIndex();
   xiugai x = new xiugai();
   jt1.setText(mingcheng.get(jl.getSelectedIndex()) + "");
   jt2.setText(vector.get(jl.getSelectedIndex()) + "");
   }
  }
  }
 });
 addWindowListener(new WindowAdapter() {
  public void windowClosing(WindowEvent e) {
  String s = "c:\\music.txt";
  mmm(vector, mingcheng, s);
  System.exit(0);
   }
 });
 setSize(300, 400);
 setVisible(true);
}
 
public void run() {
 while (true) {
  Date now = new Date();
  //shijian.setText("當(dāng)前時(shí)間: " + now.getYear()+"年"+now.getMonth()+"月"+now.getDate()+"日"+now.getTime());
  shijian.setText("當(dāng)前時(shí)間:"+(new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(new Date())+"  嚴(yán)楷");
  try {
  Thread.sleep(1000);
  } catch (InterruptedException e) {
  }
  if(geshi){
  you=(int)soumd1.getMediaTime().getSeconds();
  mm =you%60;
   if(you!=0)
  if(you%60==0)
  {
   b++;
  }
   sj1.setText(b+":"+mm);
  sldDiameter.setMaximum(zongmiao);
  if(you!=zongmiao)
   sldDiameter.setValue(you);
  else {
   sldDiameter.setValue(0);
  mm=0;
    b=0;
  }
  }
 }
}
 
public StringBuffer daoxu(String fileName) {
 String mc = "";
 for (int i = fileName.length(); i >= 1; i--) {
  if (fileName.charAt(i - 1) == '\\')
  break;
  mc += fileName.charAt(i - 1);
 }
 StringBuffer buffer = new StringBuffer(mc);
 StringBuffer mm = buffer.reverse();
 return mm;
}
 
public void mmm(Vector vector, Vector mingcheng, String lujin) {
 lujin a = new lujin(vector, mingcheng);
 try {
  ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(lujin));
  output.writeObject(a);
  output.flush();
  output.close();
 } catch (Exception e) {
 
 }
}
public String fen(int yy) {
  fenzhong = (int) yy / 60;
  miaozhong = (int) yy % 60;
  String sss = fenzhong + ":" + miaozhong;
  return sss;
}
 
public static void main(String agrs[]) {
 MP3 s = new MP3();
 Thread t1 = new Thread(s);
 t1.start();
 s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
 
class xiugai extends JFrame {
 public xiugai() {
  jl1 = new JLabel("文件名");
  jt1 = new JTextField(20);
  jl2 = new JLabel("文件路徑");
  jt2 = new JTextField(20);
  xiugai = new JButton("修改");
  Container c = getContentPane();
  c.setLayout(new GridLayout(3, 1));
  JPanel j1 = new JPanel();
  JPanel j2 = new JPanel();
  JPanel j3 = new JPanel();
  j1.add(jl1);
  j1.add(jt1);
  j2.add(jl2);
  j2.add(jt2);
  j3.add(xiugai);
  c.add(j1);
  c.add(j2);
  c.add(j3);
  xiugai.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent event) {
   mingcheng.setElementAt(jt1.getText(), jl.getSelectedIndex());
   vector.setElementAt(jt2.getText(), jl.getSelectedIndex());
   jl.setListData(mingcheng);
   dispose();
  }
  });
  setSize(300, 120);
  setVisible(true);
 }
}
}
 
class lujin implements Serializable {
 
Vector a = new Vector();
 
Vector b = new Vector();
 
public lujin(Vector vector, Vector mingcheng) {
 a = vector;
 b = mingcheng;
}
 
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品自拍啪啪 | 日韩视频在线观看免费视频 | 黄色大片网站在线观看 | 国产精品久久久久久久久久三级 | 中文字幕在线播放不卡 | 久久久久久久久久久久久九 | 久久福利在线 | 国产亚洲精品综合一区 | 成年免费视频黄网站在线观看 | 久久国产精品久久久久 | 欧美a在线播放 | 久久思思爱 | av免费在线免费观看 | 国产精品一区网站 | 自拍偷拍999| 欧美精品一区二区视频 | 国产九九在线视频 | 国产小视频一区 | 逼片 | 一本一道久久久a久久久精品91 | 毛片视频网站 | 成人免费一区二区三区在线观看 | 黑人三级毛片 | 草久视频在线观看 | 国产精品hd免费观看 | 成人福利电影在线观看 | 久久精品1区2区 | 久久久久免费精品国产小说色大师 | 成人18在线 | 高清国产在线 | 久久91精品国产91久久yfo | 成人电影毛片 | 中文在线国产 | 一本一道久久久a久久久精品91 | 亚洲午夜在线视频 | 午夜视频免费在线观看 | 亚洲一区二区三区精品在线观看 | 国产一级淫片免费看 | 欧美毛片| 亚州综合一区 | 精品中文字幕久久久久四十五十骆 |