java简单的音乐播放器编程_一个简单的Java音乐播放器

本文介绍了如何使用Java编程创建一个简单的音乐播放器,包括文件选择、播放、暂停、停止和循环播放等功能。通过JFrame、JButton等组件实现用户交互,并使用AudioClip类处理音频播放。
摘要由CSDN通过智能技术生成

本文实例为大家分享了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);

}

}

运行结果如下:

989d6304661836954814ab1d9e9f3b2f.png

561092bdede767903b39f98200b329fb.png

5d38bd402b12d93dd2cc7d6b57e12770.png

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值