En este post crearemos un botón swing que reproducirá un sonido cuando este sea presionado por el usuario. Sin mas que añadir, pongamonos manos a la obra.
¿Qué necesitamos?
Nivel: Novato
Tiempo: 15 minutos
Paso 1. Proyecto base
Creamos un nuevo proyecto en Netbeans, para ellos vamos al menú Archivo -> Proyecto Nuevo, Seleccionamos la categoría Java y en tipo de proyecto seleccionamos Java Aplication. El nombre del proyecto será «JButton con sonido«.
Paso 2. JButton personalizado
Cuando se crean componentes personalizados, es recomendable separar estos del resto de la lógica del proyecto utilizando una estructura de paquetes, esto con el fin de que puedan ser fácilmente mantenibles en el tiempo, por ejemplo, nosotros crearemos un paquete «componentes» y dentro un paquete con el nombre de «botones», si el componentes utilizara otro tipo de archivos como imágenes por ejemplo, se crearía un paquete «recursos».
Dentro el paquete «botones«, creamos una clase con el nombre de «BotonConSonido.java», nuestro proyecto queda de la siguiente forma:
A continuación pegamos el siguiente código:
package org.example.componentes.botones; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.io.IOException; import java.nio.file.FileSystems; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.UnsupportedAudioFileException; import javax.swing.JButton; /** * @see http://www.jc-mouse.net/ * @author mouse */ public class BotonConSonido extends JButton { private final File archivowav; private Clip clip; private AudioInputStream audioInputStream; /** * Constructor de clase */ public BotonConSonido() { super("Dale Clic"); archivowav = new File( FileSystems.getDefault().getPath("") .toAbsolutePath() + "/recursos/pedo.wav"); //Cuando se presione el boton, se reproducira el sonido BotonConSonido.this.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { play(); } }); } /** * Metodo para reproducir un archivo de audio */ private void play(){ try { audioInputStream = AudioSystem.getAudioInputStream(archivowav); clip = AudioSystem.getClip(); clip.open(audioInputStream); clip.start(); } catch (LineUnavailableException | IOException| UnsupportedAudioFileException e) { System.err.println(e.getMessage()); } } }
Paso 3. Archivo de audio WAV
Ahora, en la carpeta raíz del proyecto netbeans, creamos una nueva carpeta con el nombre de «recursos» y colocamos ahí nuestro archivo de audio como se ve a continuación:
Paso 4. Probando nuestro botón con sonido
Para terminar nuestro post, debemos crear una interfaz de usuario donde colocar el botón, para ello pegamos en el archivo Main.java el siguiente código:
package org.example; import javax.swing.JFrame; import static javax.swing.JFrame.EXIT_ON_CLOSE; import org.example.componentes.botones.BotonConSonido; /** * @see http://www.jc-mouse.net/ * @author mouse */ public class Main { public void init() { JFrame frame = new JFrame("Boton con sonido"); frame.setDefaultCloseOperation(EXIT_ON_CLOSE); BotonConSonido boton = new BotonConSonido(); frame.add(boton); frame.setSize(400, 220); frame.setVisible(true); } public static void main(String[] args) { new Main().init(); } }
Finalmente ejecutamos y tenemos:
enjoy!
Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye
Enjoy! :)
Los gráficos de torta, también llamados gráficos de 360 grados o circulares, son gráficos estadísticos que se utilizan p...
En un post anterior [Crear plantillas personalizadas para Netbeans] vimos una forma sencilla que tiene Netbeans para fac...
Uno de los mayores problemas que se presenta en el desarrollo de una aplicación, es el acceso a la base de datos y el mé...
En este tutorial construiremos una aplicación en JavaFX para leer datos de un servicio web Herramientas IDE Netbeans 8.x...
Continuando con los tutoriales sobre fragmentos en android, en esta oportunidad veremos como añadir Fragments dinámicame...
Los códigos QR del inglés Quick Response Code o código de respuesta rápida es un tipo de código para el almacenamiento d...
WhatsApp anuncio a través de su blog que ya se encuentra disponible la función de envío de fotos y videos TEMPORALES, es...
Muchas de las innovaciones computacionales de la NASA se desarrollaron para ayudar a explorar el espacio, pero ahora la...
TikTok es una plataforma de microvideos muy popular entre los jóvenes el cual cuenta ya con millones de videos cortps de...
Una clase JTree permite mostrar datos de una forma jerárquica y en realidad este objeto no contiene sus datos; es decir,...