ボタンのクリックで WAV を鳴らす

ボタンをクリックすると WAV が鳴ります。

前田稔の超初心者のプログラム入門

プログラムの作成

  1. メモ帳などでタイプして SoundButton.java の名前で保存して下さい。
    //★ Button のクリックで WAV を鳴らす    前田 稔
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import java.io.*;
    import javax.sound.sampled.*;
    
    class SoundButton extends JFrame implements ActionListener
    {   JButton button;
    
        // Main()
        public static void main(String[] args)
        {   new SoundButton();
        }
    
        // Constructor
        SoundButton()
        {   super("WAV を鳴らす");
            button = new JButton("Click");
            button.addActionListener(this);
            add(button);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setSize(200, 100);
            setVisible(true);
        }
    
        // Listener
        public void actionPerformed(ActionEvent e)
        {   loadAndPlayAudio("good2.wav");
        }
    
        // Sound のロードと演奏
        private void loadAndPlayAudio(String path)
        {   try
            {   AudioInputStream sound = AudioSystem.getAudioInputStream(
                    getClass().getResource(path));
                AudioFormat format = sound.getFormat();
                DataLine.Info di = new DataLine.Info(Clip.class, format);
                Clip clip = (Clip) AudioSystem.getLine(di);
                clip.open(sound);
                clip.start();
            }
            catch(UnsupportedAudioFileException uafe)
            {   uafe.printStackTrace();  }
            catch(IOException ioe)
            {   ioe.printStackTrace();  }
            catch(LineUnavailableException lue)
            {   lue.printStackTrace();  }
        }
    }
    
  2. プログラムと同じフォルダーに "good2.wav" を格納して下さい。
    java のソースファイルをコンパイルして class オブジェクトを実行して下さい。
    ボタンをクリックすると WAV が鳴ります。

プログラムの説明

  1. ボタンの基本的な説明は ボタンのクリックを検出する を参照して下さい。
    ボタンのクリックで WAV を鳴らすので、次のモジュールをインポートして下さい。
    ActionListener を implements します。
    JButton button はウインドウに貼り付けるボタンの定義です。
        import java.awt.*;
        import javax.swing.*;
        import java.awt.event.*;
        import java.io.*;
        import javax.sound.sampled.*;
        class SoundButton extends JFrame implements ActionListener
        {   JButton button;
        
  2. Constructor でボタンに ActionListener を設定してウインドウに張り付けます。
        // Constructor
        SoundButton()
        {   super("WAV を鳴らす");
            button = new JButton("Click");
            button.addActionListener(this);
            //getContentPane().add(button);
            add(button);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setSize(200, 100);
            setVisible(true);
        }
        
  3. ActionListener では loadAndPlayAudio() を呼ぶだけです。
        // Listener
        public void actionPerformed(ActionEvent e)
        {   loadAndPlayAudio("good2.wav");
        }
        
  4. loadAndPlayAudio() メソッドでは WAV をロードして鳴らします。
    詳細は WAV を鳴らす を参照して下さい。
        // Sound のロードと演奏
        private void loadAndPlayAudio(String path)
        {   try
            {   AudioInputStream sound = AudioSystem.getAudioInputStream(
                    getClass().getResource(path));
                AudioFormat format = sound.getFormat();
                DataLine.Info di = new DataLine.Info(Clip.class, format);
                Clip clip = (Clip) AudioSystem.getLine(di);
                clip.open(sound);
                clip.start();
            }
            catch(UnsupportedAudioFileException uafe)
            {   uafe.printStackTrace();  }
            catch(IOException ioe)
            {   ioe.printStackTrace();  }
            catch(LineUnavailableException lue)
            {   lue.printStackTrace();  }
        }
        

超初心者のプログラム入門(Java2)