代码
import java.applet.*;
import java.awt.*;
import java.net.*;
import javax.swing.*;
import java.awt.event.*;
@SuppressWarnings("serial")
public class piano extends JFrame implements ActionListener
{
Image img;
AudioClip audios[]=new AudioClip[13];
Button buts[]=new Button[13];
Panel l = new Panel();
public piano()
{
setTitle("Piano");
setLocation(200,200);
setSize(700,400);
setLayout(new FlowLayout());
l.setLayout(new GridLayout(1,13));
l.setPreferredSize(new Dimension(480,195));
add(l);
ImageIcon icon=new ImageIcon("D:\\soft\\java-2021-12\\eclipse\\text1\\bin\\keyBoard.jpg");
img=icon.getImage();
for(int i=0;i<13;i++)
{
char key=(char)('a'+i);
String strfile="D:\\soft\\java-2021-12\\eclipse\\text1\\bin\\"+Character.toString(key);
URL url= null;
try
{
url =new URL("file:///"+strfile+".wav");
}
catch(Exception e)
{
e.printStackTrace();
}
audios[i]=Applet.newAudioClip(url);
buts[i]=new Button(""+key);
buts[i].addActionListener(this);
l.add(buts[i]);
}
setVisible(true);
}
public void paint(Graphics g)
{
g.drawImage(img, 50, 50, this);
}
public void actionPerformed(ActionEvent e)
{
for(int i=0;i<13;i++)
{
if(e.getSource()==buts[i])
{
audios[i].play();
break;
}
}
}
public static void main(String args[])
{
new piano();
}
}
易错
String strfile="D:\\soft\\java-2021-12\\eclipse\\text1\\bin\\"+Character.toString(key);
的最后一个“\\”