Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Java / Crea un JButton con sonido para tus aplicaciones

Crea un JButton con sonido para tus aplicaciones

Autor jc mouse viernes, diciembre 4, 2020

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?

  • Netbeans 8.x o superior
  • Archivo de sonido WAV de menos de 1 segundo de duración

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«.

proyecto sonido envolvente

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:

files wav java code

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:

files au

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:

dale playyyy!!!

enjoy!

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

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! :)

También Te Podría Interesar

Funciones SQL desde Java

Funciones SQL desde Java

En post anteriores vimos lo que son los procedimientos almacenados y como llamarlos desde java, en este post veremos lo...

OS.js: Un sistema Operativo en tu navegador

OS.js: Un sistema Operativo en tu navegador

OS.js a pesar de lo que sugiere su nombre, no es en si un Sistema Operativo, es más, en su web oficial no se nombra  por...

Transacciones – Uso de Commit y Rollback

Transacciones – Uso de Commit y Rollback

Cuando desarrollamos aplicaciones en java con base de datos debemos tener cuidado en que se cumplan un conjunto de carac...

Introducción a VueJS framework para el desarrollo FrontEnd

Introducción a VueJS framework para el desarrollo FrontEnd

Vue.js es un framework progresivo para la creación de interfaces de usuario de una sola página creado por Evan You. Pero...

Crea un servicio web REST con PHP y MYSQL

Crea un servicio web REST con PHP y MYSQL

Servicio Web Un servicio web (en inglés, Web Service o Web services) es una tecnología que utiliza un conjunto de protoc...

Guardar y Leer imagenes en PostgresSQL

Guardar y Leer imagenes en PostgresSQL

En este tutorial veremos una forma para registrar archivos JPG en una base de datos PostgreSQL y recuperarlos para utili...

Comparte lo que sabes

Categorias

Últimas entradas

En este post crearemos un botón swing que reproducirá un sonido cuando este sea presionado por el usuario.  Sin mas que...

Muchas veces necesitamos de fotos para adornar nuestros perfiles en RRSS pero no queremos subir nuestras propias fotos p...

En esta ocasión aprenderemos a conectaros con una base de datos Oracle desde Laravel. Es un tutorial sencillo y cortito,...

En este tutorial conoceremos una forma de conectar una aplicación en Laravel con tres bases de datos diferentes, 2 en My...

Herramientas

Generador de Enlaces a Whatsapp