Uso de clase AudioClip, Image e ImageIcon

Ir abajo

Uso de clase AudioClip, Image e ImageIcon

Mensaje  Admin (Viruz) el Miér Nov 14, 2012 4:54 am

Hola amigos de ViruzBlog disculpen la gran ausencia pero por falta de tiempo no he podido subir algunos post al blog pero estoy elaborando un vídeo tutorial de Photoshop para los iniciados. En esta ocasión traigo uno de mis primeros programas que fue la inserción de audio mediante un componente (Checkbox) y etiquetas que contienen imágenes.

Hago el uso de el audio con la clase AudioClip y las imágenes con la clase Image e ImageIcon. Les anexo al final el código completo junto con su Applet para que puedan probarlo.
Imagen
[Tienes que estar registrado y conectado para ver este vínculo]
¿Como funciona el programa?

  1. Con la clase Toolkit (que es un kit de herramientas de Windows) buscamos la imagen de fondo y la asignamos a una variable de tipo Image.
  2. Utilizaremos la clase AudioClip para los sonidos de cada caballo y con el método newAudioClip() decidimos que caballo tendrá su sonido donde de parámetro otorgamos el nombre del audio.
  3. Al implementar un oyente del evento "ItemEvent" declaramos su método abstracto el cual será itemStateChanged().
  4. Por último en una condición if() comprobaremos si el CheckBox es seleccionado y con los métodos loop() y stop() reproducimos y paramos los sonidos respectivamente.
Código

Clase Main
/**
*
* @author ViRuZ
*/
public class Main {
public static void main(String[] args) {
new Caballo();
}
}

Clase Caballo

/**
*
* @author ViRuZ
*/
import java.applet.AudioClip;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.*;

public class Caballo extends JFrame implements ItemListener {
private JLabel horses;
private JCheckBox chkHorse1;
private AudioClip horse1;
private JCheckBox chkHorse2;
private AudioClip horse2;
private JCheckBox chkHorse3;
private AudioClip horse3;
private JCheckBox chkHorse4;
private AudioClip horse4;
private JPanel pnlCheckBox;

/** Creates a new instance of Main */
public Caballo() {
setLayout(new BorderLayout());
pnlCheckBox = new JPanel(new GridLayout(2,2));

Toolkit tk = Toolkit.getDefaultToolkit();
Image imaHorses = tk.getImage(Caballo.class.getResource("horses.png"));

horses = new JLabel();
horses.setIcon(new ImageIcon(imaHorses));
getContentPane().add(horses, BorderLayout.CENTER);


horse1 = JApplet.newAudioClip(Caballo.class.getResource("horse1.wav"));
horse2 = JApplet.newAudioClip(Caballo.class.getResource("horse2.wav"));
horse3 = JApplet.newAudioClip(Caballo.class.getResource("horse3.wav"));
horse4 = JApplet.newAudioClip(Caballo.class.getResource("horse4.wav"));

chkHorse1 = new JCheckBox("Caballo 1");
chkHorse1.setIcon(new ImageIcon(Caballo.class.getResource("horse1.png")));
chkHorse1.setSelectedIcon(new ImageIcon(
Caballo.class.getResource("horse1-selected.png")));

chkHorse1.addItemListener(this);
pnlCheckBox.add(chkHorse1);

chkHorse2 = new JCheckBox("Caballo 2");
chkHorse2.setIcon(new ImageIcon(Caballo.class.getResource("horse2.png")));
chkHorse2.setSelectedIcon(new ImageIcon(
Caballo.class.getResource("horse2-selected.png")));
chkHorse2.addItemListener(this);
pnlCheckBox.add(chkHorse2);

chkHorse3 = new JCheckBox("Caballo 3");
chkHorse3.setIcon(new ImageIcon(Caballo.class.getResource("horse3.png")));
chkHorse3.setSelectedIcon(new ImageIcon(
Caballo.class.getResource("horse3-selected.png")));
chkHorse3.addItemListener(this);
pnlCheckBox.add(chkHorse3);

chkHorse4 = new JCheckBox("Caballo 4");
chkHorse4.setIcon(new ImageIcon(Caballo.class.getResource("horse4.png")));
chkHorse4.setSelectedIcon(new ImageIcon(
Caballo.class.getResource("horse4-selected.png")));
chkHorse4.addItemListener(this);
pnlCheckBox.add(chkHorse4);

getContentPane().add(pnlCheckBox, BorderLayout.SOUTH);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Viruz Blog: Caballos Cantadores");
setSize(800,587);
setResizable(false);

setVisible(true);
}

public void itemStateChanged(ItemEvent e) {
boolean isSelected;
/**
* Con el metodo getStateChange() del ItemEvent que recibe el metodo
* puedo saber si el JCheckBox fue seleccionado o fue deseleccionado,
* dependiendo de esto puedo manejar el evento de maneras diferentes.
*/
isSelected = (e.getStateChange() == ItemEvent.SELECTED);
/**
* Del mismo modo que getSource() nos devuelve el componente que realizo
* el evento en actionPerformed(), getItemSelectable() nos devuelve el
* componente que realizo el evento en itemStateChanged()
*/
if (e.getItemSelectable() == chkHorse1) {
if (isSelected)
horse1.loop();
else
horse1.stop();
} else if (e.getItemSelectable() == chkHorse2) {
if (isSelected)
horse2.loop();
else
horse2.stop();
} else if (e.getItemSelectable() == chkHorse3) {
if (isSelected)
horse3.loop();
else
horse3.stop();
} else if (e.getItemSelectable() == chkHorse4) {
if (isSelected) {
horse4.loop();
} else {
horse4.stop();
}
}
}
}


Vídeo

[Tienes que estar registrado y conectado para ver este vínculo]

Descarga el código
[Tienes que estar registrado y conectado para ver este vínculo]

Autor: Viruz study
Enlace: [Tienes que estar registrado y conectado para ver este vínculo]

_________________
[Tienes que estar registrado y conectado para ver esa imagen]
avatar
Admin (Viruz)
Admin

Mensajes : 148
Fecha de inscripción : 23/09/2012
Edad : 30
Localización : Desktop

http://viruz.foroactivo.mx

Volver arriba Ir abajo

Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.