JRadioButton (Botones de opción)
La clase JRadioButton proporciona los atributos y métodos para implementar un botón de opción el cual es un botón de dos estados mutuamente excluyentes. En la figura 2 se muestra un ejemplo de objetos de esta clase.
Figura 2. Ejemplo de objetos de la clase JRadioButton
Cómo se mencionó, la principal característica de este control es ser mutuamente excluyente, esto quiere decir que, considerando el ejemplo de la figura 2, el usuario sólo puede seleccionar una de las dos alternativas, ya sea “Tengo 18 años o más” o “Tengo menos de 18 años”. Al momento de seleccionar alguna de las dos, la que estaba seleccionada pasa a no seleccionada y viceversa.
Mi recomendación es utilizar este tipo de botones para preguntas excluyentes, donde el usuario deba seleccionar una y sólo una opción de n opciones. Algunos ejemplos de estas preguntas son:
- Sexo ( femenino / masculino)
- Pertenecer o no a un rango de edad (como en el ejemplo de la figura 2)
- Practicar o no algún deporte
entre tantas otras que obliguen a seleccionar sólo una alternativa.
Cargar datos de una base de datos en un JTable
Ya que en Acceso a Datos trabajamos con la base de datos HR, vamos a reutilizar uno de sus métodos para completar un jTable de nuestro formulario. Para ello debemos añadir en un JFrame un jTable y crearnos un modelo de datos de tipo DefaultTableModel en la clase de nuestro JFrame.
DefaultTableModel dtmModelo;
Además, dentro del método public nombreJPanel () además de llamar al método initComponents; llamaremos también a cargarTabla();
El método cargarTabla será público y no devolverá nada.
En primer lugar deberá definir el modelo DefaultTableModel para que no pueda ser editado por el usuario.
this.dtmModelo = new DefaultTableModel() {
@Override
public boolean isCellEditable(int fila, int columna) {
return false; //Con esto conseguimos que la tabla no se pueda editar
}
};
@Override
public boolean isCellEditable(int fila, int columna) {
return false; //Con esto conseguimos que la tabla no se pueda editar
}
};
A continuación asignamos dicho modelo a la tabla:
this.tblTabla = new JTable(dtmModelo);
Al modelo le añadimos los nombres de columnas que vamos a necesitar. En este caso, de Regiones tomaremos el ID y el nombre de la región.
this.dtmModelo.addColumn("ID");
this.dtmModelo.addColumn("Region");
this.dtmModelo.addColumn("Region");
Seguidamente realizamos la conexión a la base de datos HR y obtenemos, en este caso, el ArrayList de regiones que se lo asignaremos a una variable de tipo ArrayList.
Hr hr = new Hr();
ArrayList<Region> listaRegiones = hr.listarRegions();
ArrayList<Region> listaRegiones = hr.listarRegions();
Seguidamente hacemos un bucle para recorrer esta lista de regiones, definiéndose una fila en la que indicaremos el número de columnas que vamos a utilizar y asignándole a las posiciones de la fila la información extraída del array. Finalmente, en cada pasada del bucle añadimos la fila al modelo:
for (int i = 0; i < listaRegiones.size(); i++) {
Object[] fila = new Object[2];
fila[0]= listaRegiones.get(i).getRegionId();
fila[1]= listaRegiones.get(i).getRegionName();
this.dtmModelo.addRow(fila);
}
Object[] fila = new Object[2];
fila[0]= listaRegiones.get(i).getRegionId();
fila[1]= listaRegiones.get(i).getRegionName();
this.dtmModelo.addRow(fila);
}
Para actualizar la información será necesario realizar el método updateUI a la tabla y a continuación ejecutar el método setViewportView del JScrollPane para actualizar la información que contiene.
this.tblTabla.updateUI();
this.scpScrollPane.setViewportView(tblTabla);
this.scpScrollPane.setViewportView(tblTabla);
ARRAYLIST
Una vez definido lo que es un Array, pasaremos a definir el “ArrayList”. La clase ArrayList en Java es una clase que permite almacenar datos en memoria de forma similar a los Arrays, con la ventaja de que el numero de elementos que almacena, lo hace de forma dinámica, es decir, no es necesario declarar su tamaño como pasa con los Arrays. Por lo tanto, el ArrayList es una estructura más compleja que el Array, pero a su vez mucho más potente ya que nos permite un número ilimitado de elementos sin importarnos cualquier error tipo “IndexOutofBounds”.
Para realizar las operaciones comunes tales como ingresar, eliminar, buscar o modificar datos encontramos los siguientes métodos:
Un buen ejemplo de la utilización tanto de ArrayList como de sus métodos sería (Extracto Práctica 6):
En ésta imagen podemos observar como en primer lugar, creamos el ArrayList “liga”, para más tarde a través de un bucle for rellenarlo con los nombres de los equipos de la Liga.
Un poco despues, utilizamos el método clone() para copiar el contenido del ArrayList “liga” en otro, además de utilizar el .size() para mostrar la cantidad de valores que hay en el ArrayList.
Por último, borramos el contenido del espacio número “4” de nuestro ArrayList con el método .remove().
STRINGTOKENIZER
La clase StringTokenizer sirve para separar una cadena de caracteres en una serie de elementos o tokens. Se incluye en el paquete java.util y se separan mediante delimitadores (espacio en blanco, tabulador \t, salto de linea \n …)
Para obtener los tokens del String utilizamos los métodos hasMoreTokens() y nextToken():
- hasMoreTokens(), devuelve true si hay más tokens que obtener en la cadena.
- nextToken(), devuelve un String con el siguiente token.
En este caso, el ejemplo de String Tokenizer podríamos cogerlo de nuestra propia práctica:
Insertar elementos en ArrayList
Una vez que hemos aprendido a crear un ArrayList vamos a ver cómo podemos insertar elementos en un ArrayList de Java.
Para aprender a insertar elementos en un ArrayList de Java tenemos que saber es que un ArrayList implementa una lista de contenido dinámico. Es decir, según vayamos insertando elementos en el ArrayList, el tamaño del mismo se irá incrementando dinámicamente.
Lo primero que haremos será crear el ArrayList:
- ArrayList<String> al = new ArrayList<String>();
En este caso hemos tipado a String el ArrayList, ya que todas las colecciones tienen que ir tipadas y los elementos que vamos a insertar en el ArrayList serán cadenas.
- al.add(Elemento);
El parámetro que recibe el método .add() del ArrayList es el elemento que queramos insertar. Como en este caso son cadenas de texto, es decir, String, realizaremos las siguientes operaciones:
- al.add("Victor");
- al.add("Luis");
- al.add("Elena");
Por cada una de las líneas insertamos un elemento en el ArrayList.
Si quieres ver qué elementos has insertado en el ArrayList puedes listar el contenido de dicho ArrayList.
- for(int x=0;x<al.size();x++) {
- System.out.println(al.get(x));
- }
Eliminar un objeto de ArrayList
Un ArrayList es una lista de elementos enlazados. En este ejemplo vamos a ver como podemos eliminar un elemento de un ArrayList y veremos que es lo que sucede con el resto de elementos.
De igual manera que sucede con el resto de ejemplos que estamos viendo para manipular los ArrayList, vamos a crear el ArrayList.
- ArrayList<String> al = new ArrayList<String>();
- al.add("Víctor");
- al.add("Luis");
- al.add("Elena");
En los ejemplos suelo utilizar cadenas de texto por comodidad. Pero en el tipo de elemento genérico del ArrayList podemos utilizar cualquier otro tipo, ya sea primitivo o un objeto. El resultado del código será el mismo.
Para eliminar un elemento de un ArrayList nos vamos a apoyar en el método .remove(). El método .remove() de un ArrayList espera como parámetro el índice del elemento que queremos eliminar.
Los índices de un elemento ArrayList empiezan a numerarse por el valor 0.
De esta forma si ejecutamos el código:
- al.remove(1);
- Iterator<String> it = al.iterator();
- while(it.hasNext())
- System.out.println(it.next());
Lo que obtendremos por pantalla será:
Víctor
Elena
Elena
Ya que el elemento que ocupaba el índice 1, que era "Luis", ha sido eliminado.
Como se puede ver, eliminar un elemento de un ArrayList es un código muy sencillo. Solo tenemos que tener en cuenta el índice que eliminamos.
No hay comentarios.:
Publicar un comentario