
其中,点击按钮的时候会有测试出现,但就是没声音,求解啊,1的路劲没错
------解决思路----------------------
package csxc;
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.io.File;
import java.net.URI;
import java.net.URL;
import javax.swing.AbstractAction;
import javax.swing.ActionMap;
import javax.swing.Box;
import javax.swing.InputMap;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.KeyStroke;
public class csxc4 extends Applet{
public static void main(String[] asd){
new MusicWindow1();
}
}
class MusicWindow1 extends JFrame{
Police listener;
JButton musicButton[];
File musicFile;
URI uri;
URL url;
AudioClip clip;
String[] musicName={"E:/1.wav","E:/1.wav","E:/1.wav","E:/1.wav","E:/1.wav","E:/1.wav","E:/1.wav"};
MusicWindow1(){
musicButton=new JButton[7];
Box musicBox=Box.createHorizontalBox();
listener=new Police();
for(int i=0;i<musicButton.length;i++){
musicButton[i]=new JButton(""+(i+1));
/**
* 首先这里你没有加事件监听。然后这个appletaudio 好像不能放MP3,能放wav,你可以试试
*/
musicButton[i].addActionListener(new Police());
musicBox.add(musicButton[i]);
InputMap inputmap=musicButton[i].getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
inputmap.put(KeyStroke.getKeyStroke(((""+(i+1)))),"dog");
ActionMap actionmap=musicButton[i].getActionMap();
actionmap.put("dog", listener);
}
setLayout(new FlowLayout());
add(musicBox);
setBounds(120,125,290,150);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
class Police extends AbstractAction{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JButton button=(JButton) e.getSource();
if(clip!=null) clip.stop();
for(int i=0;i<musicButton.length;i++){
if(button==musicButton[i]){
System.out.println(i);
musicFile=new File(musicName[i]);
uri=musicFile.toURI();
try{url=uri.toURL();
}catch(Exception exp){
}
clip=Applet.newAudioClip(url);
clip.play();
}
}
}
}
}
换成wav格式的,然后就好了