当前位置: 代码迷 >> Java相关 >> [求助]用java播放音乐 在切换音乐的时候 怎么让前一首停止(见代码)
  详细解决方案

[求助]用java播放音乐 在切换音乐的时候 怎么让前一首停止(见代码)

热度:277   发布时间:2007-04-23 21:28:33.0
[求助]用java播放音乐 在切换音乐的时候 怎么让前一首停止(见代码)

用java播放音乐 在切换音乐的时候 怎么让前一首停止

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.*;
import java.applet.*;
import java.net.*;
public class musicMenu extends JMenu{
JCheckBoxMenuItem [] MusicList;
ButtonGroup b;
public musicMenu()
{
// 音乐菜单
this.setText("音乐(M)");
this.setMnemonic (KeyEvent.VK_M);
/* URL file=getClass().getResource("music/爱的代价.mid");
AudioClip sound=java.applet.Applet.newAudioClip(file);
sound.play();*/
MainFrame.bar.add(this);
init();
addListener();
}

//添加监听器
private void addListener(){
MusicList[0].addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {
// TODO 自动生成方法存根
if(e.getSource()==MusicList[0]){
URL file=getClass().getResource("music/爱的代价.mid");
AudioClip sound=java.applet.Applet.newAudioClip(file);
sound.play();
}
}

});


MusicList[1].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(e.getSource()==MusicList[1]){
URL file=getClass().getResource("music/爱的就是你.mid");
AudioClip sound=java.applet.Applet.newAudioClip(file);
sound.play();
}
}
});
MusicList[2].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(e.getSource()==MusicList[2]){
URL file=getClass().getResource("music/当你孤单你会想起谁.mid");
AudioClip sound=java.applet.Applet.newAudioClip(file);

sound.play();
}
}
});
MusicList[3].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(e.getSource()==MusicList[3]){
URL file=getClass().getResource("music/第一次.mid");
AudioClip sound=java.applet.Applet.newAudioClip(file);

sound.play();
}
}
});
MusicList[4].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(e.getSource()==MusicList[4]){
URL file=getClass().getResource("music/七里香-钢琴版.mid");
AudioClip sound=java.applet.Applet.newAudioClip(file);

sound.play();
}
}
});
MusicList[5].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(e.getSource()==MusicList[5]){
URL file=getClass().getResource("music/盛夏的果实.mid");
AudioClip sound=java.applet.Applet.newAudioClip(file);

sound.play();
}
}
});
MusicList[6].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(e.getSource()==MusicList[6]){
URL file=getClass().getResource("music/唯一.mid");
AudioClip sound=java.applet.Applet.newAudioClip(file);

sound.play();
}
}
});
MusicList[7].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(e.getSource()==MusicList[7]){
URL file=getClass().getResource("music/");
AudioClip sound=java.applet.Applet.newAudioClip(file);
sound.stop();
}
}
});
}

//初始化面板
private void init(){
MusicList=new JCheckBoxMenuItem[8];
b=new ButtonGroup();
for(int i=0;i<8;i++)
{
MusicList[i]=new JCheckBoxMenuItem();
b.add(MusicList[i]);
this.add(MusicList[i]);

}
MusicList[0].setText("爱的代价");
MusicList[0].setToolTipText("梁咏琪");
MusicList[1].setText("爱的就是你");
MusicList[1].setToolTipText("王力宏");
MusicList[2].setText("当你孤单你会想起谁");
MusicList[2].setToolTipText("张栋梁");
MusicList[3].setText("第一次");
MusicList[3].setToolTipText("光良");
MusicList[4].setText("七里香");
MusicList[4].setToolTipText("周杰伦");
MusicList[5].setText("盛夏的果实");
MusicList[5].setToolTipText("莫文蔚");
MusicList[6].setText("唯一");
MusicList[6].setToolTipText("王力宏");
MusicList[7].setText(" i am woring now");
MusicList[7].setToolTipText("No music");

MusicList[7].setSelected(true);
}
}


搜索更多相关的解决方案: java  音乐  import  awt  event  

----------------解决方案--------------------------------------------------------
天啊 监听事件写的这么多。。给你提个意见吧 JComboBox 里面加一月名 用一个事件选择里面的内容 URL 改为URL file=getClass().getResource("music/"+JComboBox.getItem().toString+".mid"); 一句话就可以选择了吧 换音乐先Stop在loop就行吧 JComboBox获得当前索引的Item不知道具体是哪个方法自己查下API就能找到了 网吧机器上没有API所以没看:)

----------------解决方案--------------------------------------------------------
AudioClip类中有stop()方法
可以调用
----------------解决方案--------------------------------------------------------
回复:(a276202460)天啊 监听事件写的这么多。。给你...
什么意思?加一个月名???糊涂了
----------------解决方案--------------------------------------------------------

楼上问的是什么啊......
是事件处理的时候你写的太多了 要是有100个音乐名 怎么办写100个事件吗?要是少的话就用JCombobox 多的话就用JList 用里面的内容就性了 都有接口看下API就知道了 只是改变url内容就行了 都是用的selectLister好像,选那个url内容就改变 在改变前stop 重新定义了url后loop 音乐就改变了 不用写那么多事件 自己好好研究下 在弄不明白我在给你写下


----------------解决方案--------------------------------------------------------
回复:(a276202460)楼上问的是什么啊......是事件处...
貌似还是有点糊涂...我明白你的意思是我不应该写那么多监听器
----------------解决方案--------------------------------------------------------

用一个监听来监听的意思


----------------解决方案--------------------------------------------------------
是啊 用一个监听 然后那个url怎么换?
能不能具体点 谢
----------------解决方案--------------------------------------------------------
还没解决呢~~~帮忙啊
谢了

----------------解决方案--------------------------------------------------------
  相关解决方案