package pkgnew;
import javax.swing.JButton;
import javax.swing.JFrame;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
import java.io.File;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
public class bob
{
JButton test = new JButton("");
JButton test1 = new JButton("");
JButton test2 = new JButton("");
JButton test3 = new JButton("");
JPanel panel = new JPanel();
public void playSound(String soundName)
{
try
{
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File(soundName).getAbsoluteFile());
Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
clip.start();
}
catch(Exception ex)
{
System.out.println("Error with playing sound.");
ex.printStackTrace();
}
}
public bob() {
JFrame frame = new JFrame("Movie Stars");
test.setIcon(new ImageIcon("C:\\Users\\bob\\Desktop\\Leonardo.jpg"));
test1.setIcon(new ImageIcon("C:\\Users\\bob\\Desktop\\Bruce.jpg"));
test2.setIcon(new ImageIcon("C:\\Users\\bob\\Desktop\\Jim.jpg"));
test3.setIcon(new ImageIcon("C:\\Users\\bob\\Desktop\\Robert.jpg"));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.pack();
frame.add(panel);
frame.setSize(1000, 800);
frame.setResizable(true);
frame.setVisible(true);
panel.add(test);
panel.add(test1);
panel.add(test2);
panel.add(test3);
panel = new JPanel(new GridLayout(2,2));
test.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
playSound("Leonardo.wav");
}
}
);
}
public static void main(String[] args)
{
bob t = new bob();
}
}
所以基本上我有圖片的4個按鈕的網格,和我想使它所以當你點擊每個畫一個聲音播放。我爲其中一個按鈕實現了它,但是我迄今爲止嘗試使其爲其他3個按鈕工作的一切都沒有成功。我以爲我只會複製test.addActionListener(new ActionListener() {
並用'test1'替換'test',但那不是我也試圖在該循環中添加一個'else if catch',以便如果e.getSource() == test
那麼它將播放其中一個聲音,else if e.getSource() == test2
它會發揮另一個,但沒有工作我創建播放點擊時聲音的JButton的 - 我如何實施上更多的按鈕
_「未成功」__如何?發生了什麼?你做了什麼來排除故障? –
我試圖做一個'else if'結構來獲得其他聲音,當你點擊不同的picutres時。 'test.addActionListener(新的ActionListener(){ 公共無效的actionPerformed(ActionEvent的五){ 如果(e.getSource()==測試){ 嘗試{ playSound( 「Leonardo.wav」); }趕上(異常x){x.printStackTrace();} } else if(e.getSource()== test1){ 嘗試playSound(「Jim.wav」);' – archer
@archer是否有任何異常或錯誤你看到了嗎? –