Continuamos con la siguiente implementación.
Select Form, nuestra lista desplegable vamos a crear entonces acá en elementos una clase Select Form
y también varear de la clase abstracta.
Implementamos el método Atrato.
Dibujar html.
Ok, bien, lo primero es que tiene un atributo que viene especial porque es una lista.
Ya sea un arreglo o un tipo list del Ãpico lechon de Java.
En fin, es una colección de objetos del tipo opciones Option que mantiene un valor y también un nombre
o etiqueta.
El nombre que aparece en la lista select cuando se despliega, se fijan.
Entonces aparece una lista y uno selecciona un elemento.
Pero uno puede enviar como valor el nombre o también un Heidy o identificador algún parámetro.
No necesariamente tiene que ser el nombre.
Por eso tengo que tener un valioso valor y un nombre o etiqueta.
Bien, entonces el atributo private bien.
Podríamos usar arreglos, pero vamos a empezar a ver componente más avanzado en Java como las listas,
más que nada.
Es como una pequeña introducción o preview a la lista, porque después lo vamos a ver más en detalle,
ya que el API colección o colección de Java es bastante grande.
No se necesita más de una clase, pero por ahora solamente lo vamos a utilizar y vamos a ver lo más
básico.
Entonces, del tipo list list no es una clase, sino es una interfaz.
Después la vamos a ver y está asociada a un tipo igual que un arreglo.
El arreglo siempre está asociado un tipo de los datos que contiene acá también una lista.
Los tipos lo podemos indicar con los corchetes triangulares que se le conoce menor y mayor.
Se fijan entonces con menor y mayor o corchete triangular.
Acá colocamos el tipo, por ejemplo del tipo string ya por ahora del tipo string, pero hace del tipo
opción.
De ahí vamos a crear la clase del tipo String.
El problema es que ese es el tipo String.
Va a mantener el mismo nombre y valor.
Es decir, el valor y el nombre sería exactamente mismo.
Mientras que si es el tipo de una clase, ahí puedo manejar atributos y pongo a tener el atributo Balay
valor y el atributo nombre opciones.
Bien, ahí tenemos nuestro list, pero tengo que importar de ya útil control barra espacio.
Importamos de llebaba útil list del tipo de los elementos que va a contener.
Veamos el list@, después vamos entre más detalles, pero list@ no es una clase, sino es una interfaz
interface list, es decir, es un tipo bien genérico que la implementa en clases concreta.
Ahí vamos a ver como la ArrayList, por ejemplo.
Sigamos con el constructor.
Entonces, generated constructor?
Como siempre, primero elemento form.
El constructor padre para pasar el nombre con el super ok.
Y nada más.
Vamos a tener dos, uno solamente el nombre y otro para pasar también las opciones.
Pero ahora dejamos select nón.
Y ahora sí, otro más.
Generate igual.
Constructor seleccionamos el padre nombre con el super.
Ok, ahora si seleccionamos opciones ok.
Listo.
Ahora sí.
Ahí lo tenemos.
Entonces pasamos el nombre con el súper y disrupciones.
Ahora siempre tenemos que inicializar acá el arreglo, es decir, la lista make arreglo, la lista.
Bueno, igual cuando inicializamos el arreglo con el new, acá también, pero acá lo pasamos por argumento,
así que acá no es necesario, pero acá se lo tengo que pasar, acá lo tenemos que inicializar.
Entonces, con this punto Opciones ArrayList ArrayList sería nuestro lista del tipo arreglo y las estamos
inicializado y del tipo de la lista por defecto asume que es String, pero también se podría colocar
por ejemplo, string vigen.
Por ahora, no se preocupen de la red list, porque después lo vamos a ver más en detalle.
Al menos que sepa que la ArrayList es la clase concreta y el tipo list que del tipo del atributo es
la interfaz que mucho más abstracta es genérica.
Entonces, típicamente cuando se utiliza por lo general el tipo de la interfaz list, pero cuando se
inicializa obviamente con una clase concreta y utilizamos ArrayList la implementación.
Pero repito que esto después más adelante lo vamos a ver en detalle todo lo que es el API de colección
de Java.
Pero ahora esto lo vamos a cambiar la idea de que sea del tipo opción.
Entonces vamos a crear una clase.
En elementos o mejor vamos a crear un pacato para que quede mejor, más organizado.
Entonces, dentro de elementos select para indicar que vamos a colocar clases que pertenecen al elemento
selecto y acá en SELECT.
En este pack vamos a crear una clase.
Opción y es una clase bien simple con tres atributos privat valor
y el nombre.
Además, uno.
Tercero bullían selected.
Si es seleccionado, que es un atributo propio que tienen la lista desplegable.
Cada opción ese cacion puede ser marcada como seleccionada.
Es decir, cuando tenemos la lista.
Hacemos clic en uno queda seleccionado.
Qué selected y bien simple vamos a tener entonces.
Generated Guiteras setter.
Para todos, entonces seleccionamos todos.
Y también un constructor.
Generad constructor, valor y nombre.
Ok.
Y también podríamos tener otro 100 parámetro vacío.
Entonces generated constructor y sin nada, Selleck no vacío.
Entonces, si damos la posibilidad para crear y pasamos los datos, asignamos conocete.
O bien un constructor para pasar el valor y el nombre.
Estamos listos.
Esa sería la clase.
Entonces ahora en el Select Form.
En vez de usar la lista del tipo String del tipo opción, la tenemos que importar porque está en otro
РАМКАХ.
Se fijan entonces acá.
Un clic y acá sería del tipo opción.
Cuando se crea la instancia ArrayList del tipo.
Opción.
Letta llega también en el constructor.
Otro detalle que quiero mencionar que importante respecto a las listas, a los list@ y en general a
lápiz de colección, Villada utiliza estas llaves o menor y mayor para indicar el tipo.
Está claro.
Y eso se conoce como generics de Yaba.
Entonces podemos utilizar la lista con cualquier tipo de objeto de ñada, ya sea una opción, sea el
tipo String o lo que sea, siempre se indica con genéricos en Java.
Después también vamos a ver los genéricos o generic.
Bien, continuemos.
Vamos a implementar el método GET para las opciones para poder obtener las opciones.
Entonces, por acá, aunque quizá no sea tan necesario, en realidad el get de las opciones no es tan
necesario porque la utilizamos dentro de la clase.
Acá en dibujar, entonces la podríamos omitir ahora en caso de que necesitemos las opciones fuera de
la clase.
Es decir, puede iterar estas opciones en una clase externa.
Bueno, ahí podríamos implementar el inquieto público, pero si no, no es necesario.
Lo que sí es importante agregar elementos.
Entonces podemos implementar el set.
O bien pasarlo por el constructor.
Se fijan?
Acá lo pasamos, pasamos a las opciones.
Está bien.
Pero también podríamos implementar Eldad el Public.
Eso lo vimos.
Puede ser.
Voy, por ejemplo.
Retorna nada a add.
Opción.
Perfecto.
Entonces la idea es agregar un elemento al arreglo.
A la lista.
Disputo opciones.
Punto.
Bueno.
Cómo agregamos en arreglos con corchete y el índice acá con el AB?
Entonces con el método ADD agregamos y no se preocupen por el tamaño del arreglo.
La cantida elemento automático de forma automática se va incrementando.
Por lo tanto, no necesitamos ningún tipo de índice para ir incrementando ni cantidá elementos.
Nada.
Todo lo hace de forma automática.
Aunque después vamos a ver más detalles sobre esta API list.
Bien.
Agregamos opción.
Vejan es mucho más simple.
Disputo opciones punto ADD para agregar elementos a la lista.
Recuerden que opciones en la lista.
El método ADD es el ArrayList, pero también es la interfaz.
Entonces la interfaz propone métodos y el ArrayList implementa estos métodos.
Eso contrato parecido a la clase es abstracta, pero les ofrece que no tiene un sentido familiar.
Después lo vamos a ver.
Por ahora, simplemente la utilizamos.
Bien podría retornar boy o también podríamos utilizar el add de forma encadenada, es decir, sin tener
que colocar el punto y coma y volver a invocar el nombre del objeto.
Punto adopción, punto y coma el objeto punto add opción y así, sino que de forma encadenada a la opción
punto add opción y así.
Para eso tenemos que colocar acá el tipo de retorno, el mismo que la clase Select Form.
Entonces copiamos o escribimos acá select retornamos el mismo tipo de la clase y acá un ratón this.
Hoy queda mejor.
Después vamos a ver como se utilizan, pero queda mucho mejor de forma encadenada.
Faltaría dibujar el HTML.
Bien podríamos utilizar un Stream Builder para que quede mejor.
Entonces por acá String Builder SB.
Perfecto.
Y comenzamos acá selecta.
Un elemento HTML para listas.
Dejamos un espacio y empezamos a concatenar.
Entonces trim builder.
Punto append.
Name nombre parámetro recuerden todos los elementos de formulario tener un nombre y también un valor.
Por qué estamos heredando acá de la clase elemento form de la clase padre?
Entonces todos tienen un valor y un nombre.
Acá también.
Entonces, en nombre punto se fijan.
Acá también podemos enfocar de forma encadenada porque retorna la misma instancia trim builder happen
dis punto nombre.
Puntó happen cerramos la comilla simple y cerramos con el mayor el SELECT, entonces Syria Select Name
igual el nombre, cerramos comilla y cerramos el elemento select.
Ahora, aquí vienen las opciones.
La lista.
Entonces ahora tenemos que iterar dentro del elemento selecto para desplegar y mostrar la lista de opciones.
Usamos un for.
Recuerden que opciones es un arreglo, es una lista.
Se puede iterar con for igual que un arreglo, pero mucho más automatizado.
Recuerden maneja forma automática.
Se han auto incrementando el tamaño del arreglo de la lista y también va auto generando los índices
de forma automática comenzando 0.
Entonces siempre en la primera posición es la cero igual que el arreglo.
Entonces for opción opción 2 punto el arreglo la lista 10.
Punto opciones.
Entonces por cada opción vamos a crear un elemento HTML.
Ese punto happen.
Primero, un salto lìnea.
Vamos a hacer un salto línea con N en HTML, sería con Perrie, ya sería con eso en HTML, pero como
estamos terminal lo dejamos con salto línea con n option de opción y tiene un valor y un nombre etiqueta
value igual comilla simple punto happen opción punto get valor get valor.
Se fijan entonces en la opción por cacion le asignamos valor.
Entonces en value colocábamos opción get valor.
Recuerden que opción sería cada objeto que se itera en el for por cada elemento de opciones, por cada
opción.
Cerramos comillas.
Que faltaría bueno cerrar también acá el elemento opción elemento option.
Entonces cerramos el elemento de apertura option y entremedio colocamos el nombre opción, punto, get
nombre.
Y cerramos también la etiqueta opción.
Es como el textarea, área que se abre.
Se fijan ahí se abre y después se cierra.
Se cierra el elemento y entremedio colocamos el nombre.
Qué faltaría!
Punto y coma, faltaría seleccionarlo o marcarlo.
Entonces tenemos que preguntar si la opción en cuestión que se está alterando el atributo selected es
true.
If opción punto is selected.
Entonces, si es true?
En el fondo, si es seleccionado, entonces tenemos que reflejar eso acá.
Ese punto happen, un espacio selected.
Se fijan, entonces acá tenemos el elemento que abre de apertura.
Acá tenemos el nombre y el cierre, pero acá tenemos el valor con su valor igual.
Comilla, cerramos comillas y luego si está marcado, si está seleccionado, agregamos la palabra selected,
que es como una bandera en el elemento.
Es como un atributo.
Simplemente es un atributo o bandera en el option para indicar que está seleccionado este elemento en
la lista.
Ya lo tenemos.
Qué faltaría.
Bueno, lo último después de Alford, cuando finaliza Effort acá ese punto happen, faltaría cerrar
el select.
Acá lo estamos abriendo.
Se fijan?
Lo abrimos.
Acá tenemos las opciones dentro del cuerpo del selecto y tenemos que cerrar.
Entonces acá cerramos con con esa larch selecto.
Finalmente retornamos el String Builder s B.3 String.
Yecta se fijan una implementación distinta a los demás elementos, también mucho más compleja, porque
maneja opciones.
Una lista, por supuesto.
No es necesario que comprendan esto a cabalidad.
Totalmente no, porque la idea acá de mostrar como haya explicado el tema de clases abstracta ya y cómo
implementar de forma diferente en cada implementación, en cada clase hija de elementos.
Eso es lo importante, independiente de lo que contenga dentro.
Acá tenemos un select simplemente de una forma distinta a cada uno de los demás elementos hijos.
Pero el detalle es todo acá.
Que al final es html, manejo, formulario, etiquetas.
No es tan importante que manejen bien el código HTML.
Bien y eso sería.
Continuamos la siguiente clase con la clase y el método main.
Nos vemos.