当前位置: 移动技术网 > IT编程>开发语言>Java > 一个简单的Java音乐播放器

一个简单的Java音乐播放器

2019年07月22日  | 移动技术网IT编程  | 我要评论
本文实例为大家分享了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);
 }
 
}

运行结果如下:

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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网