martes, 6 de febrero de 2018

jList

jList


Un objeto de control jList permite dibujar en el formulario una caja de lista de opciones (items). Cuando el formulario se encuentra en la etapa de ejecución se pueden seleccionar sus items. Pero para trabajar con este objeto en necesario usar un objeto de la categoria Swing Containers denominado jScrollPane. El objeto jScrollPane permite hacer el objeto jList tenga barra de desplazamiento que en necesaria cuando el numero de items es grande y no puede ser visto a simple vista en el objeto de contro jList. Cabe señalar que los objetos que pertenencen a Swing Containers seran estudiados con mayor detalle, pero el uso del Jlist nos obliga utilizar el objeto contenedor jScrollPane.

Propiedades mas Usadas:
  • Model: Permite establecer los items de la caja de lista.
  • Fond:  Permite establecer el tipo de letra en el objeto de control
  • Enabled: para habilitar o desabilitar el uso del objeto de control

Metodos mas usados:
  • setModel(): Permite vincular una variable objeto de tipo model a un objeto de control jList.
  • getSelectedValue(): Contiene el item seleccionado de la caja de lista

Evento mas usado:
  • ValueChanged(): Sucede cuando el usuario selecciona un item de la caja de lista

Un pequeño ejemplo:
Realizar una aplicación que permite escribir nombres de personas, al escribir, el usuario agregara al jList y al seleccionar en la caja de lista que se desabilite el boton eliminar y que al dar click elimine el nombre, tambien debe haber un contador que diga n registro si tiene mas de un registro que diga por ejemplo 2 registros y cuando se elimine tambien muestre ese mensaje pero cuando solo tiene un resgistro debe imprimir 1 registro:

Primero definamos las variables de cada control Swing:
  • Nombre: txtNom
  • Agregar: btnAgregar
  • Eliminar: btnEliminar
  • Salir: btnSalir
  • jList: (iniciamos con el lst) lstLista
  • El contador (donde dice Resgistro) : lblRegistro


Aqui vemos el armado de nuestro formulario: ahora a programarlo:
Como vemos solo hay un jlist ahora solo debemos definir un modelo para eso debemos definirlo como el DefaultListModel() como se vera a continuacion:


Listo hemos puesto nuestro modelo y el objeto llamado "model", tambien hemos puesto una variable global entera para nuestro contador como pide el ejercicio, ahora en el contructor (public) debemos indicarlo que el objeto model sea para el lstLista que hemos puesto en nuestro formulario y tambien habilitaremos el boton eliminar:



Ahora programaremos el boton agregar:


Ahi lo vemos el codigo, explicare cada linea:
  • Declaramos una variable de tipo String "nombre" para luego ser tomado por el getText() en el campo txtNom
  • Luego llamamos al objeto "model" del jList y despues usar el metodo addElement() para que ingrese el nombre escrito al jList y dentro del parentesis escribir la variable declarada (nombre)
  • Al darle click en agregar limpiara el nombre con el setText("") y seguido con el requestFocus() para que el cursor este en el campo del nombre.
  • luego añadimos la variable contar++, esto quiere decir que cuando ingresemos un registro cuente la cantidad de registros que han en el jList
  • Despues mostramos el nombre escrito en el jList con el setModel
  • Realizar una condicion que si el contador es mas de uno debe imprimir el contador con el mensaje " Registros"

Ahora programaremos el jList, no es mucho, solo escribir una linea de codigo como veremos a continuacion:


Usaremos el evento ValueChanged y solamente es para desabilitar el boton eliminar al momento de dar click a cualquier registro:


Ahora procederemos a programar el boton Eliminar:


Como vemos el codigo ahora explicaremos lo que hace cada linea:
  • Primero declaramos una variable int de nombre indice y luego ser el elemento seleccionado con el getSelectedIndex(); dentro del jList
  • Luego llamamos al objeto model pero ahora usaremos el metodo remove() que eliminara el item seleccionado y dentro del parentesis va la variable indice
  • Al dar click en el boton eliminar se habilitara el mismo boton y para luego se desabilitado al seleccionar un registro del jList
  • Disminuye el contador y mostramos la cantidad de registros con el setText()
  • Por ultimo la condicion que que si el Contador es menos de 2 solo muestre el mensaje "1 registro"

Ahora para el boton Limpiar:
En el Jlist usaremos el metodo removeAllElements(); para el objeto model, quedaria asi:  model.removeAllElements();  y limpiara todo el registro




Y por ultimo el Boton Cerrar con el this.dispose();
Listo, Ahora a ejecutar la aplicacion:

Aqui vemos la ejecucion ahora agregaremos nombres:



Agregamos un nombre y miren lo que aparece:



Muestra el nombre ingresado al jList y en el label aparece             "1 Registro" Ahora a seguir ingresando nombres:



Ahora tenemos 7 registros y como se ve en el label "7 registros" se debe gracias a la condicional del contador ( ver la imagen del btnCalcular) Ahora Eliminaremos cada registro:



Como vemos al dar click se desabilita el boton eliminar para luego ser usado y al eliminar nuevamente se habilita hasta ser seleccionado para que se pueda usar nuevamente el boton, ahora a eliminar un registro ejemplo "Diana":



Como vemos se ha eliminado el nombre Diana y solo queda 6 registros como se ven en el label y tambien el boton eliminar no se puede usar ahora que quede un registro y miren el label:



Como se puede ver en el label dice "1 Registro" eso se debe gracias a la condicional (ver imagen btnEliminar) ahora agregaremos mas para comprobar el boton limpiar:


Listo Tenemos 4 registros, click en el boton limpiar y miren:


Limpio todo, eso seria todo.









Compartir:

PAG WEB de Farmacia con HTML5 y CSS

Interfaz Principal de la Página Tamaño de Escritorio: Tamaño de Tablet: Tamaño de Celular Movil: Armado de l...