欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

一个简单的Java音乐播放器

程序员文章站 2024-02-12 14:52:10
本文实例为大家分享了java音乐播放器展示的具体代码,供大家参考,具体内容如下 package kkmusic; import java.applet.a...

本文实例为大家分享了java音乐播放器展示的具体代码,供大家参考,具体内容如下

package kkmusic;

 import java.applet.applet;
 import java.applet.audioclip;
 import java.awt.borderlayout;
 import java.awt.eventqueue;
 

 import javax.swing.jframe;
 import javax.swing.jpanel;
 import javax.swing.border.emptyborder;
 import java.awt.cardlayout;
 import javax.swing.jbutton;
 import javax.swing.jfilechooser;
 import javax.sound.sampled.floatcontrol;
 import javax.sound.sampled.sourcedataline;
 import javax.swing.grouplayout;
 import javax.swing.grouplayout.alignment;
 import java.awt.event.actionlistener;
 import java.awt.event.actionevent;
 import javax.swing.layoutstyle.componentplacement;
 import javax.swing.jmenubar;
 import javax.swing.jmenuitem;
 import java.awt.event.itemlistener;
 import java.io.file;
 import java.net.malformedurlexception;
 import java.net.url;
 import java.awt.event.itemevent;
 import javax.swing.jmenu;
 import javax.swing.jtextfield;
 import javax.swing.swingconstants;
 import javax.swing.jslider;
 import java.awt.event.mousemotionadapter;
 import java.awt.event.mouseevent;
 

public class mp3 extends jframe {
 
private jpanel contentpane;
 file file;//声明文件对象
 string filename;
 jfilechooser chooser=new jfilechooser();//创建一个文件选择器
 private jtextfield xiaoxi;
 boolean loop=false;
 audioclip adc;//声音音频剪辑对象
 sourcedataline line;
 private floatcontrol volume = null;
 /**
 * launch the application.
 */
 public static void main(string[] args) {
 eventqueue.invokelater(new runnable() {
 public void run() {
 try {
 mp3 frame = new mp3();
 frame.setvisible(true);
 } catch (exception e) {
 e.printstacktrace();
 }
 }
 });
 }
 

/**
 * create the frame.
 */
 public mp3() {
 settitle("\u97f3\u4e50\u64ad\u653e\u5668");
 setdefaultcloseoperation(jframe.exit_on_close);
 setbounds(100, 100, 265, 333);
 
jmenubar menubar = new jmenubar();
 setjmenubar(menubar);
 
jmenu mnnewmenu = new jmenu("\u6587\u4ef6");
 menubar.add(mnnewmenu);
 xiaoxi = new jtextfield();
 xiaoxi.setcolumns(10);
 xiaoxi.settext("欢迎使用本播放器");
 jmenuitem dakai = new jmenuitem("\u6253\u5f00");
 dakai.addactionlistener(new actionlistener() {
 public void actionperformed(actionevent e) {
 int value=chooser.showopendialog(chooser);//接受文件选择器的状态
 if(value==chooser.approve_option){
 file=chooser.getselectedfile();//返回选中文件
 filename=file.getname();
 string flag=filename;
 xiaoxi.settext(flag);
 try {
 if(adc!=null)
 adc.stop();
 url url=new url("file:"+file.getpath());//创建资源定位
 adc=applet.newaudioclip(url);
 //adc.play();
 
} catch (malformedurlexception e1) {
 // todo auto-generated catch block
 e1.printstacktrace();
 system.out.println("不能播放!");
 }
 }
 }
 });
 mnnewmenu.add(dakai);
 
jmenuitem tuichu = new jmenuitem("\u9000\u51fa");
 tuichu.addactionlistener(new actionlistener() {
 public void actionperformed(actionevent e) {

 dispose();
 if(adc!=null)
 adc.stop();
 return ;
 }
 });
 
mnnewmenu.add(tuichu);
 contentpane = new jpanel();
 contentpane.setborder(new emptyborder(5, 5, 5, 5));
 setcontentpane(contentpane);
 
jbutton playbtn = new jbutton("\u64ad\u653e");
 playbtn.sethorizontalalignment(swingconstants.left);
 playbtn.addactionlistener(new actionlistener() {
 public void actionperformed(actionevent e) {
 
 string flag="正在播放:"+filename;
 if(adc==null){
 flag="请选择播放的音乐";
 xiaoxi.settext(flag);
 return;
 }
 adc.play();
 xiaoxi.settext(flag);
 }
 });
 
jbutton stopbtn = new jbutton("\u6682\u505c");
 stopbtn.sethorizontalalignment(swingconstants.left);
 stopbtn.addactionlistener(new actionlistener() {
 public void actionperformed(actionevent e) {
 adc.stop();
 string flag="停止播放音乐:"+filename;
 xiaoxi.settext(flag);
 }
 });
 
jbutton againbtn = new jbutton("\u5faa\u73af");
 againbtn.sethorizontalalignment(swingconstants.left);
 againbtn.addactionlistener(new actionlistener() {
 public void actionperformed(actionevent e) {
 loop =!loop;
 string flag="";
 ; if(loop){
 adc.play();
 adc.loop();//循环播放
 flag="循环播放:"+filename;
 }
  else{
  adc.play();
  flag="顺序播放"+filename;
  }
  xiaoxi.settext(flag);
 }
 });
 



grouplayout gl_contentpane = new grouplayout(contentpane);
 gl_contentpane.sethorizontalgroup(
 gl_contentpane.createparallelgroup(alignment.leading)
 .addgroup(gl_contentpane.createsequentialgroup()
 .addcontainergap()
 .addgroup(gl_contentpane.createparallelgroup(alignment.trailing, false)
 .addcomponent(xiaoxi, alignment.leading)
 .addgroup(alignment.leading, gl_contentpane.createsequentialgroup()
 .addcomponent(playbtn, grouplayout.preferred_size, 64, grouplayout.preferred_size)
 .addpreferredgap(componentplacement.unrelated)
 .addcomponent(stopbtn, grouplayout.preferred_size, 66, grouplayout.preferred_size)
 .addpreferredgap(componentplacement.unrelated)
 .addcomponent(againbtn, grouplayout.preferred_size, 64, grouplayout.preferred_size)))
 .addcontainergap(15, short.max_value))
 );
 gl_contentpane.setverticalgroup(
 gl_contentpane.createparallelgroup(alignment.trailing)
 .addgroup(gl_contentpane.createsequentialgroup()
 .addcomponent(xiaoxi, grouplayout.preferred_size, grouplayout.default_size, grouplayout.preferred_size)
 .addpreferredgap(componentplacement.unrelated)
 .addpreferredgap(componentplacement.related, 173, short.max_value)
 .addgroup(gl_contentpane.createparallelgroup(alignment.baseline)
 .addcomponent(playbtn)
 .addcomponent(stopbtn)
 .addcomponent(againbtn))
 .addcontainergap())
 );
 contentpane.setlayout(gl_contentpane);
 }
 
}

运行结果如下:

一个简单的Java音乐播放器

一个简单的Java音乐播放器

一个简单的Java音乐播放器

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。