Como fazer arquivos de som tocarem

Pessoal tenho os seguintes códigos abaixo e não consigo fazer com que o som toque, alguém poderia ver o que está acontecendo?

//o classe é LoadAudioAndPlay
package jgf.sound;

import javax.sound.midi.InvalidMidiDataException;
import javax.sound.midi.MidiSystem;
import javax.sound.midi.MidiUnavailableException;
import javax.sound.midi.Sequence;
import javax.sound.midi.Sequencer;
import java.applet.AudioClip;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.FlowLayout;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.*;
import javax.swing.AbstractButton;
import java.awt.Color;
import javax.swing.JFrame;
import java.awt.BorderLayout;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JMenuBar;
import java.awt.FlowLayout;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JScrollPane;
import javax.swing.JButton;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.JFileChooser;
import java.applet.AudioClip;

public class LoadAudioAndPlay extends JApplet {
	
	private AudioClip sound1, sound2, currentSound;
	private JButton playJButton, loopJButton, stopJButton;
	private JComboBox soundJComboBox;
	
public void init()
{
	setLayout(new FlowLayout());
	
	String choices[] = {"Welcome", "Hi"};
	soundJComboBox = new JComboBox (choices);
	
	soundJComboBox.addItemListener(
		
		new ItemListener()
		{
		
		public void itemStateChanged( ItemEvent e )
		{
			currentSound.stop();
			currentSound = soundJComboBox.getSelectedIndex() == 0?
				sound1 : sound2;
		}
		}
		);
		
	add(soundJComboBox);
	
	ButtonHandler handler = new ButtonHandler();
	
	//Cria o botão Iniciar
	playJButton = new JButton ("Play");
	playJButton.addActionListener( handler );
	add( playJButton );
	
	//Cria o botão Pular
	loopJButton = new JButton ("Loop");
	loopJButton.addActionListener(handler);
	add( loopJButton );
	
	//Cria o botão Parar
	stopJButton = new JButton ("Stop");
	stopJButton.addActionListener(handler);
	add( stopJButton );
	
	//carrega os sons e configura o som atual
	sound1 = getAudioClip(getDocumentBase(),"welcome.wav");
	sound2 = getAudioClip(getDocumentBase(),"hi.wav");
	currentSound = sound1;
}

		
	public void stop()
		{
		//processa, reproduz, faz loop de, e interrompe eventos de botão
		currentSound.stop();
		}
		
	private class ButtonHandler implements ActionListener
	{
				
	public void actionPerformed( ActionEvent actionEvent )
	{
			if(actionEvent.getSource()== playJButton)
				currentSound.play();//reproduz o AudioClip uma vez
				else if (actionEvent.getSource()== loopJButton)
					currentSound.loop();//reproduz o AudioClip continuamente
					else if (actionEvent.getSource()== stopJButton)
						currentSound.stop(); //interrompe o AudioClip

}
}
}


//o Main é Testesom

	import javax.swing.*;
	import java.applet.AudioClip;
	
	

	public class TesteSom 

{
public static void main( String args[] )
{
Audiotest LAAP = new Audiotest();
LAAP.setSize( 300, 300 );
LAAP.setVisible( true );
} // fim de main
}

Agradeço a atenção.

Dá uma olhada nessa:

import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.FloatControl;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;
import javax.sound.sampled.UnsupportedAudioFileException;
 
public class WavPlayer {
 
	private String filename;
	private Position curPosition;
	private static final int EXTERNAL_BUFFER_SIZE = 524288; // 128Kb
	enum Position { LEFT, RIGHT, NORMAL };
 
	public WavPlayer(String wavfile) {
		filename = wavfile;
		curPosition = Position.NORMAL;
	}
 
	public WavPlayer(String wavfile, Position p) {
		filename = wavfile;
		curPosition = p;
	}
	 
	public void play() { 
		File soundFile = new File(filename);
		if (!soundFile.exists()) {
			System.err.println("Wave file not found: " + filename);
			return;
		}
 
		AudioInputStream audioInputStream = null;
		try {
			audioInputStream = AudioSystem.getAudioInputStream(soundFile);
		} catch (UnsupportedAudioFileException e1) {
			e1.printStackTrace();
			return;
		} catch (IOException e1) {
			e1.printStackTrace();
			return;
		}
 
		AudioFormat format = audioInputStream.getFormat();
		SourceDataLine auline = null;
		DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
 
		try {
			auline = (SourceDataLine) AudioSystem.getLine(info);
			auline.open(format);
		} catch (LineUnavailableException e) {
			e.printStackTrace();
			return;
		} catch (Exception e) {
			e.printStackTrace();
			return;
		}
 
		if (auline.isControlSupported(FloatControl.Type.PAN)) {
			FloatControl pan = (FloatControl) auline
					.getControl(FloatControl.Type.PAN);
			if (curPosition == Position.RIGHT)
				pan.setValue(1.0f);
			else if (curPosition == Position.LEFT)
				pan.setValue(-1.0f);
		} 
 
		auline.start();
		int nBytesRead = 0;
		byte[] abData = new byte[EXTERNAL_BUFFER_SIZE];
 
		try {
			while (nBytesRead != -1) {
				nBytesRead = audioInputStream.read(abData, 0, abData.length);
				if (nBytesRead >= 0)
					auline.write(abData, 0, nBytesRead);
			}
		} catch (IOException e) {
			e.printStackTrace();
			return;
		} finally {
			auline.drain();
			auline.close();
		}
 
	}
}
 

Olá Renato,
Usei o código que você postou e tentei executá-lo, mas o seguinte erro aparece: cannot access WavPlayer

Mantive o mesmo ‘main’ abaixo, substituindo o nome para WavPlayer, e quando faço a compilação surge o erro!
Você conseguiu ver o erro do meu código? Valeu pela atenção. Se precisar estarei à disposição. Um abraço.