En este artículo veremos como sincronizar un JCheckBox de java swing con un atributo de tipo booleano del controlador para que los datos se actualicen automáticamente tanto en la vista (JCheckBox) como en el modelo de datos (atributo independiente u atributo de objeto compuesto declarados en el controlador), usando la librería SwingUtils.
La librería SwingUtils no sólo permite hacer esta sincronización con componentes de tipo javax.swing.JCheckBox; también es posible usarla con componentes de tipo javax.swing.JToggleButton y los otros componentes que heredan de esta clase:
Lo primero que debemos hacer es descargar la librería SwingUtils, para lo cual puedes revisar las instrucciones en el siguiente enlace:
==> SwingUtils - Librería de Utilidades para Java Swing
- ModelBean
- PropertyController
Para saber como usar estas anotaciones puedes revisar esta misma sección de "Anotaciones para usar en el Controlador" en el siguiente artículo:
==> SwingUtils - Sincronizar datos de un JTextField con el Controlador (Java Swing)
El modelo de datos que usaremos es el siguiente:
Recuerda que los Getter y Setter de los atributos son requeridos para asignar y obtener el valor de los atributos.
Como podemos apreciar, podemos usar indistintamente el objeto o el tipo primitivo.
La forma de usar ésta anotación sería la siguiente:
La librería SwingUtils no sólo permite hacer esta sincronización con componentes de tipo javax.swing.JCheckBox; también es posible usarla con componentes de tipo javax.swing.JToggleButton y los otros componentes que heredan de esta clase:
javax.swing.JToggleButton javax.swing.JCheckBox javax.swing.JRadioButton
Lo primero que debemos hacer es descargar la librería SwingUtils, para lo cual puedes revisar las instrucciones en el siguiente enlace:
==> SwingUtils - Librería de Utilidades para Java Swing
Anotaciones para usar en el Controlador
Las anotaciones que podemos usar en el Controlador según sean nuestras necesidades son las siguientes:- ModelBean
- PropertyController
Para saber como usar estas anotaciones puedes revisar esta misma sección de "Anotaciones para usar en el Controlador" en el siguiente artículo:
==> SwingUtils - Sincronizar datos de un JTextField con el Controlador (Java Swing)
El modelo de datos que usaremos es el siguiente:
public class MiModelo { private Boolean booleanModelo; public Boolean getBooleanModelo() { return booleanModelo; } public void setBooleanModelo(Boolean booleanModelo) { this.booleanModelo = booleanModelo; } }
Recuerda que los Getter y Setter de los atributos son requeridos para asignar y obtener el valor de los atributos.
Anotaciones para usar en un JCheckBox, JRadioButton o JToggleButton de Java Swing
La librería SwingUtils en su actual versión, permite asignar un tipo de anotación a un componente de tipo JCheckBox, JRadioButton o JToggleButton:
- ToggleButtonView
Ésta anotación puede ser usada indistintamente de la misma forma en cualquiera de estos tres tipos de componente, pues el valor que nos devuelve cada uno de ellos es siempre un booleano, por lo tanto, el tipo de dato del API de Java a usar en el modelo de datos puede ser:
Boolean o boolean
Como podemos apreciar, podemos usar indistintamente el objeto o el tipo primitivo.
La forma de usar ésta anotación sería la siguiente:
@ToggleButtonView(name = "miModelo1.booleanModelo") private javax.swing.JCheckBox jCheckBox1;
Recuerda que el uso para componentes de tipo JRadioButton o JToggleButton es igual, sin embargo, para este tutorial sólo haremos el ejemplo con un JCheckBox.
Declaramos nuestro controlador en la vista e inyectamos la dependencia de ésta para poder sincronizarlos:
public class MiVista extends javax.swing.JFrame { private final MiControlador miControlador; public MiVista() { initComponents(); this.miControlador = new MiControlador(this); } }
Tal cual como lo vimos en el artículo sobre Cómo sincronizar un JTextField con el controlador, los datos los obtendríamos y seteariamos en la vista de la siguiente forma:
// Método para guardar los datos public void guardar() { super.changeData(TipoUpdateEnum.MODEL); printConsole(); } // Método para limpiar el formulario public void limpiar() { miModelo1 = new MiModelo(); super.changeData(TipoUpdateEnum.VIEW); } // Método para imprimir los datos por consola public void printConsole() { System.out.println("Boolean Modelo 1: " + miModelo1.getBooleanModelo()); }
Puedes revisar este artículo para comprender a fondo cómo funciona éste método super.changeData(), que como tal es el que realiza la actualización automática de los datos de la vista al modelo de datos en el controlador y viceversa.
Como podemos apreciar, usando la librería SwingUtils, es muy rápido sincronizar fácilmente datos de un JCheckBox, un JRadioButton o un JToggleButton con el Controlador para que la información de nuestra vista se actualice rápidamente en el modelo de datos y viceversa.
No hay comentarios.:
Publicar un comentario