Figura 21.5

  |  Carga y reproducción de un objeto 

AudioClip

. (Parte 2 de 3).

 15  

private

 AudioClip sonido1, sonido2, sonidoActual;

 16  

private

 JButton reproducirJButton, continuoJButton, detenerJButton;

 17  

private

 JComboBox sonidoJComboBox;

 18 
 19  

// carga la imagen cuando el applet empieza a ejecutarse

20

public void

 init()

 21  

{

 22  

 

setLayout(

new

 FlowLayout() );

 23  
 24  

 

String opciones[] = {

 "Welcome"

,

"Hi"

 };

 25  

 

sonidoJComboBox = 

new

 JComboBox( opciones );

 // crea objeto JComboBox

26

 27  

 

sonidoJComboBox.addItemListener(

 28
 

29    

new

 ItemListener()

 // clase interna anónima

30    

{

 31 

 

 

 

      

// detiene el sonido y lo cambia por la selección del usuario

32 

 

 

 

      

public void

 itemStateChanged( ItemEvent e )

 33 

 

 

 

      

{

 34 

 

 

 

             

sonidoActual.stop();

 35 

 

 

 

             

sonidoActual = sonidoJComboBox.getSelectedIndex() == 

0

 ? 

 

36     

 

 

 

 

sonido1 : sonido2;

 37 

 

 

 

      

}

// fin del método itemStateChanged

38    

}

// fin de la clase interna anónima

39   

);

// fin de la llamada al método addItemListener

40

 41  

 

add( sonidoJComboBox );

 // agrega objeto JComboBox al applet

42

 43  

 

// establece el manejador de eventos de botón y los botones

44   

ManejadorBoton manejador = 

new

 ManejadorBoton();

 45  
 46  

 

// crea objeto JButton Reproducir

47   

reproducirJButton = 

new

 JButton( 

"Reproducir"

 );

 48  

 

reproducirJButton.addActionListener( manejador );

 49  

 

add( reproducirJButton );

 50  
 51  

 

// crea objeto JButton Continuo

52   

continuoJButton = 

new

 JButton(

 "Continuo"

 );

 53  

 

continuoJButton.addActionListener( manejador );

 54  

 

add( continuoJButton );

 55  
 56  

 

// crea JButton Detener

57   

detenerJButton = 

new

 JButton( 

"Stop"

);

 58  

 

detenerJButton.addActionListener( manejador );

 59  

 

add( detenerJButton );

 60
 61  

 

// carga los sonidos y establecet sonidoActual

62   

sonido1 = getAudioClip( getDocumentBase(), 

"welcome.wav"

 );

 63  

 

sonido2 = getAudioClip( getDocumentBase(), 

"hi.au"

);

 64  

 

sonidoActual = sonido1;

 65  

}

// fin del método init

66

 67  

// detiene el sonido cuando el usuario cambia a otra página Web

68

public void

 stop()

 69  

{

 70  

 

sonidoActual.stop();

 // detener AudioClip

71

}

// fin del método stop

72

 73  

// clase interna privada para manejar eventos de botón

21.5 Carga y reproducción de clips de audio 

871

21_MAQ_CAP_21_DEITEL.indd871

4/19/081:32:53AM