用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);
}
}
----------------解决方案--------------------------------------------------------
天啊 监听事件写的这么多。。给你提个意见吧 JComboBox 里面加一月名 用一个事件选择里面的内容 URL 改为URL file=getClass().getResource("music/"+JComboBox.getItem().toString+".mid"); 一句话就可以选择了吧 换音乐先Stop在loop就行吧 JComboBox获得当前索引的Item不知道具体是哪个方法自己查下API就能找到了 网吧机器上没有API所以没看:)
----------------解决方案--------------------------------------------------------
AudioClip类中有stop()方法
可以调用
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
楼上问的是什么啊......
是事件处理的时候你写的太多了 要是有100个音乐名 怎么办写100个事件吗?要是少的话就用JCombobox 多的话就用JList 用里面的内容就性了 都有接口看下API就知道了 只是改变url内容就行了 都是用的selectLister好像,选那个url内容就改变 在改变前stop 重新定义了url后loop 音乐就改变了 不用写那么多事件 自己好好研究下 在弄不明白我在给你写下
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
用一个监听来监听的意思
----------------解决方案--------------------------------------------------------
是啊 用一个监听 然后那个url怎么换?
能不能具体点 谢
----------------解决方案--------------------------------------------------------
还没解决呢~~~帮忙啊
谢了
----------------解决方案--------------------------------------------------------