Uso de clase AudioClip, Image e ImageIcon
Viruz Blog :: Programación en General :: Java :: Intermedio
Página 1 de 1.
Uso de clase AudioClip, Image e ImageIcon
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.
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]
[Tienes que estar registrado y conectado para ver este vínculo]
¿Como funciona el programa?
- 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.
- 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.
- Al implementar un oyente del evento "ItemEvent" declaramos su método abstracto el cual será itemStateChanged().
- 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
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
Descarga el código
Caballos cantantes
Descarga el código
Caballos cantantes
Autor: Viruz
Enlace: Uso de clase AudioClip, Image e ImageIcon
Temas similares
» Uso de clase Component
» Uso de clase Scanner
» Uso de clase InetAddress
» Uso de clase Thread parte 1
» Uso de clase Thread parte 2
» Uso de clase Scanner
» Uso de clase InetAddress
» Uso de clase Thread parte 1
» Uso de clase Thread parte 2
Viruz Blog :: Programación en General :: Java :: Intermedio
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.