¿Botones en Java? Sí, yo tampoco lo creía, pero cuando creé aplicaciones gráficas me pareció muy emocionante lo de las interfaces interactivas y terminaba añadiéndole botones a todo, porque era como darle vida propia a mi software. Acércate y te cuento cómo crear botones en Java y capturar sus eventos. Con javax.swing.JButton logré todo eso fácilmente, ya que es una clase con la que mis aplicaciones metafóricamente cobran vida. El tercer control visual de uso muy común es el que provee la clase JButton. No hay mucho que decir sobre javax.swing.JButton, porque es prácticamente como un interruptor que tú presionas e inmediatamente se ejecuta una acción específica en tu aplicación. Resulta que este componente de Java Swing se diseñó para crear botones en interfaces gráficas. Con javax.swing.JButton, puedes crear botones interactivos que transforman tus aplicaciones gráficas en experiencias dinámicas y funcionales.
Declarando y Creando un Botón en Java Swing
Lo primero que te explicaré, por supuesto, será cómo crear un botón. Ten presente que, para usar un botón en Java, necesitas un contenedor como JFrame y un objeto de la clase JButton. Para ilustrar, podemos confeccionar una ventana que muestre un botón. Incluso es posible confeccionar una ventana que contenga tres objetos de la clase JButton con las etiquetas "1", "2" y "3".
Personalización de Botones Swing
La Flexibilidad es clave: lo grandioso es que puedes personalizar el texto, el tamaño, los colores y los íconos del botón. Te voy a dejar ejemplos de lo que más me gusta a mí, la parte de la personalización. Mira que puedes añadir texto y/o íconos a los botones para mejorar la experiencia del usuario.
Manejo de Eventos en Botones Swing
Ahora veremos la captura de eventos con los controles visuales. Ya te expliqué que, para capturar eventos, debes implementar la interfaz ActionListener y su método actionPerformed(). La mecánica para atrapar el clic del objeto de la clase JButton se hace mediante la implementación de una interface. Una interface es un protocolo que permite la comunicación entre dos clases. Una interface contiene uno o más cabecera de métodos, pero no su implementación. Ahora te voy a mostrar cómo trabajar con varios botones y capturar sus eventos.
Botones en Desarrollo Android
Más allá de las aplicaciones de escritorio, en el desarrollo móvil, Jetpack Compose es el kit de herramientas de IU recomendado para Android. En esta entrada hemos dado nuestros primeros pasos en Java y hemos aprendido a usar cuatro tipos de botones que no son difíciles de hacerlos funcionar, lo difícil viene cuando queremos que nuestros botones realicen muchas acciones al ser pulsados, pero el simple hecho de crearlos es más bien sencillo. Como un ejemplo práctico, para empezar nos creamos un proyecto nuevo en Android Studio. Una vez que ya tenemos nuestro nuevo proyecto, nos dirigimos al fichero activity_my.xml y vamos a eliminar el TextView que contiene y vamos a añadir los siguientes botones: Button, RadioGroup, RadioButton, ToggleButton e ImageButton. Ahora voy a crear los Strings para asignar el nombre que yo quiera a cada uno de los botones excepto en el ImageButton. Una vez que ya tengáis creados vuestros Strings vamos a proceder a modificar los identificadores de nuestros botones (android:id). Yo recomiendo que le pongamos un identificador que nos indique exactamente lo que hace nuestro elemento, para así recordar más fácilmente su función.
Lea también: IVA 21% Excel
Personalización de Botones Android
Para personalizar botones individuales con un fondo diferente, especifica el atributo android:background con un elemento de diseño o un recurso de color. Alternativamente, puedes aplicar un estilo al botón, que funciona de manera similar a los estilos HTML para definir varias propiedades de estilo, como el fondo, la fuente y el tamaño. Un diseño que puede ser útil es el botón "sin bordes". Las formas del BotónEn el botón clásico tenemos tres formas que trabajan por defecto cuando lo creamos, el estado inicial, es decir, cuando vemos el botón y no ocurre nada, el estado presionado que es cuando hacemos click o presión con el mouse o ratón sobre él y por último el estado cuando pasamos el mouse sobre el botón o el estado rollover. Normalmente utilizamos el estado inicial o por defecto y los otros dos estados o formas se utilizan cuando necesitamos aplicar un efecto especial sobre nuestro botón. En este ejemplo vamos a crear un botón que utilice las tres formas o estados que describimos anteriormente, es decir, nuestro botón va a tener una forma inicial, al hacer presión sobre él tendrá otra y finalmente si solo pasamos el mouse o ratón por arriba tendrá una tercera forma. Para lograr esto, ubica los mapas de bits en el directorio res/drawable/ de tu proyecto. Luego, crea un nuevo archivo en formato XML en el directorio res/drawable/, por ejemplo, button_custom.xml. Este archivo en formato XML representa un único recurso de elementos de diseño.
Implementación de Funcionalidad en Botones Android
Una vez cambiados los identificadores, vamos a empezar a darle la funcionalidad al primer botón que he añadido, para ello nos vamos a la clase MainActivity.java. Como podemos ver, dentro de la escucha del botón tenemos el método onClick(), es ahí donde vamos a implementar el código necesario para que nuestro botón realice una acción.
Botones de Selección: RadioButton y RadioGroup
Vamos a proceder ahora a realizar acciones con nuestro RadioButton, este tipo de botones son de selección. Ya tenemos creado el RadioGroup con dos opciones, de las cuales tal y como se muestra en el código ninguna de las dos está seleccionada por defecto. Lo que vamos a hacer, es que al pulsar el ImageButton nos muestre un Toast (notificación en pantalla durante segundos) que nos muestre el texto del RadioButton que está seleccionado en ese momento. Os voy a mostrar como capturar el texto del RadioButton seleccionado y lo voy a mostrar mostrándolo en un Toast que será mostrado cada vez que pulsemos el ImageButton. En la imagen superior solo he añadido un RadioButton, cuando tratemos con ellos os mostraré la apariencia del RadioGroup.
Botones de Imagen: ImageButton
Un ImageButton, es un botón pero con la única diferencia de que podemos añadirle una imagen. Ahora una vez declarados y creados los elementos, creamos la escucha del botón para el ImageButton igual que en el caso del Button y dentro del método onClick() insertamos el código que se va a ejecutar al pulsar nuestro ImageButton. Una vez implementado el ImageButton tal y como se muestra en la imagen anterior, la aplicación nos dará un error de este tipo: java.lang.NullPointerException. Este error significa que tenemos algo en nuestro código que no apunta a nada, es decir, tenemos alguna variable vacía, en este caso no tenemos inicializados los RadioButtons ya que ninguno de los dos está seleccionado y no se puede capturar el texto con la llamada al método getText() dentro del Toast.
Botones de Alternancia: ToggleButton
Por último, vamos a ver el funcionamiento de un ToggleButton. Para este tipo de botón es necesario crear dos Strings, debido a que es un botón que tiene dos estados, pulsado o no pulsado y según como se encuentre usaremos un String u otro para mostrarlo como nombre del botón. Para que nuestro botón responda cuando sea pulsado tenemos que activar su escucha y se hace igual que el caso del primer Button. Dentro de nuestro método onClick() insertaremos el código que queremos que ejecute nuestro ToggleButton. En este caso he realizado un bucle if/else y con el método isChecked() compruebo si está o no está pulsado. Dentro del bucle if/else podemos realizar cualquier acción que se nos ocurra, por ejemplo este botón se usa para las típicas aplicaciones que simulan una linterna.
Lea también: Guía IVA reducido
Lea también: ¿Cómo localizar tus XML del SAT?
