Saltar navegación

20250324 EjerAppPedidos_2 - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 25 de marzo de 2025 por Raquel G.

12 visualizaciones

Descargar la transcripción

¿Dónde está la jala? 00:00:00
Panel de insertar. 00:00:02
Ahora ya silencio, ¿vale? 00:00:04
El que no, que haga su ejercicio, tranquilito. 00:00:05
Panel de insertar. 00:00:08
La funcionalidad de añadir pedido, esta ya la hicimos. 00:00:09
La hicimos aquí y dijimos, ¿qué tenemos que hacer cuando 00:00:15
demos al botón añadir pedido? 00:00:20
Creamos un pedido nuevo con la descripción, ¿vale? 00:00:23
Lo metemos en nuestro map de pedidos. 00:00:27
Porque este map nuestro es este de aquí, donde van los pedidos. 00:00:30
Pues lo metemos en nuestro map a través de la función insertar 00:00:38
pedido. 00:00:42
Y ahora ya lo añadimos a la JList. 00:00:43
Lo añadimos a la JList. 00:00:46
Y habilitamos el resto de componentes para insertar 00:00:48
productos. 00:00:52
Por eso, cuando ejecutábamos esta aplicación, 00:00:53
vamos a hacer el pedido del lunes. 00:00:56
Añadir pedido. El pedido se quedaba añadido, se mostraba en la JList y ya se nos habilitaba esto para añadir algún producto. Esa funcionalidad ya la dejamos hecha el otro día. 00:01:00
Más funcionalidades que nos faltan por hacer. Añadir producto, ¿verdad? Añadir producto, ah, bueno, añadir producto estaba hecha también. 00:01:11
Añadir producto 00:01:20
Era añadir el producto 00:01:22
Cuyos datos se habían puesto aquí 00:01:24
Al pedido que habíamos seleccionado 00:01:26
En el JList 00:01:28
Esa era añadir producto 00:01:29
Ah bueno, estaba a medias 00:01:32
Estaba sin hacer 00:01:34
Vale 00:01:34
Pues primero, creábamos el producto 00:01:35
Con los datos que estaban en los 00:01:40
En los áreas de texto 00:01:42
Vamos a ir a esas áreas de texto 00:01:45
que nombre tienen 00:01:48
pues esta era 00:01:50
text nombre, text unidades 00:01:52
y text precio, vale, gracias a que 00:01:54
está bien elegido, pues nos 00:01:56
va a hacer falta, nos va a ser útil 00:01:58
para ahora añadirlo 00:02:00
vale, si hago algo mal, me lo decís 00:02:02
venga, pues 00:02:04
nuestro producto va a tener 00:02:06
como 00:02:08
nombre 00:02:10
el nombre que está en el área 00:02:11
de texto, text nombre 00:02:14
.gectest 00:02:16
Sí, hoy berridos 00:02:21
Unidades 00:02:27
Las unidades que están 00:02:28
En el área de texto 00:02:31
Textunidades.gectest 00:02:32
Pero las unidades 00:02:35
Cristian 00:02:38
Son un entero 00:02:40
Todo lo tengo 00:02:43
Las unidades son un entero 00:02:44
Esto es un string 00:02:46
Entonces tenemos que convertirlo a entero, lógicamente 00:02:47
y rápidamente nos acordamos 00:02:50
porque de todo nos tenemos que acordar 00:02:52
porque si no luego decís en el examen 00:02:54
ay, si hubiera tenido 00:02:57
tres horas y media más, lo habría hecho bien 00:02:58
¿Y realmente yo? 00:03:01
¿Si hubiera tenido siete horas? 00:03:02
Claro, pero no, ¿por qué? 00:03:03
Porque te ha hecho falta media hora para acordarte 00:03:05
de que aquí hay que poner un integer para seguir 00:03:08
Pues si te ha hecho falta acordarte 00:03:09
si te ha hecho falta media hora para acordarte 00:03:11
entonces te mereces el suspenso 00:03:13
¿Vale? 00:03:15
Entonces 00:03:21
pero como no te vas a acordar 00:03:21
del integer parsing 00:03:26
vale 00:03:27
ip.set 00:03:32
precio 00:03:36
esto el precio era double 00:03:37
con lo cual ya podemos adelantarnos 00:03:42
a que vamos a necesitar hacer la conversión 00:03:44
de double parse double 00:03:47
de lo que esté 00:03:48
en text precio 00:03:50
punto get 00:03:51
text 00:03:53
ala, el producto ya está 00:03:54
el producto toca añadírselo, ¿a quién toca añadírselo? 00:03:57
al pedido 00:04:00
cuyo id está seleccionado 00:04:01
en el JList 00:04:04
bueno, el JList tenía un modelo 00:04:04
que era este 00:04:07
¿verdad? 00:04:09
y del modelo lista pedidos 00:04:12
podremos sacar 00:04:14
lo que está seleccionado 00:04:16
A ver, ¿dónde está el evento que ya lo he perdido? 00:04:18
Aquí, vale 00:04:22
Modelo, lista 00:04:23
Pedidos 00:04:26
Vale 00:04:28
Get 00:04:29
O de la lista 00:04:31
¿No? 00:04:36
Get element at 00:04:37
Ah, está aquí 00:04:39
No, no, no, get element at 00:04:40
No, no, no, esto 00:04:41
Queremos el seleccionado 00:04:43
No está, creo que no está en el modelo. 00:04:45
Este nos da el objeto pedido 00:05:15
enterito. ¡Qué bien! 00:05:17
¡Qué bien! Y aquí es cuando nos 00:05:20
alegramos un montón. 00:05:21
Vale. 00:05:29
¿Por qué me dice? Porque falta el punto y coma. 00:05:30
¡Qué bien y qué suerte 00:05:35
ahora es cómodo 00:05:36
haber parametrizado 00:05:38
nuestra lista pedidos 00:05:41
a pedido. 00:05:42
Porque al haberla parametrizado a pedido 00:05:44
y al haber puesto entonces 00:05:46
luego el modelo como pedido, 00:05:48
Se comporta como una colección 00:05:49
De objetos pedidos 00:05:52
Bueno, es que yo creo que no puedes hacer 00:05:53
Todas las funcionalidades desde el JList 00:06:03
Habría que verlo 00:06:05
Entonces hay funcionalidades 00:06:07
Que tienes que hacer obligatoriamente a través del modelo 00:06:09
Algunas muy básicas no 00:06:11
Pero algunas, dime 00:06:13
Si funciona igual que con el JavaFX 00:06:14
con el Java 00:06:18
el JList no le puedes añadir 00:06:20
directamente el pedido 00:06:22
tienes que usar el modelo 00:06:24
claro, si hay funcionalidades que yo creo que son añadir 00:06:25
que son que no te funcionan 00:06:28
directamente con la lista, tienes que 00:06:30
usar el modelo intermedio 00:06:32
claro 00:06:33
la estructura es como un intermediario 00:06:37
para operativo, el que le da 00:06:40
la operativa 00:06:42
entonces, gracias a que lo hemos 00:06:42
parametrizado, ahora todos los get 00:06:46
o add o todo, van a trabajar 00:06:48
directamente con el objeto, como si fuera una colección 00:06:50
eso a veces lo hace muy pesado 00:06:52
en realidad 00:06:54
incluso sería más rápido si lo hubiéramos 00:06:55
parametrizado como string y le hubiéramos dado 00:06:57
directamente el código o lo que fuera 00:06:59
y luego al hacerle el get ya teníamos 00:07:02
el código directamente, pero aquí estamos sacando 00:07:03
el objeto pedido entero 00:07:05
para sacar de él el código 00:07:07
entonces bueno, hay que 00:07:08
en un momento dado, pues uno calibra, ve en función de su aplicación 00:07:11
pues si le es útil, si no le es útil 00:07:14
nosotros como lo hemos parametrizado a pedido 00:07:15
el get que hagamos 00:07:17
del que esté seleccionado 00:07:20
nos sirve para mucho más 00:07:21
claro, es útil porque nos da el objeto 00:07:24
enterito, y ahora ya nosotros 00:07:26
de este objeto enterito 00:07:28
pues lo que queremos es 00:07:30
acceder 00:07:31
a sus productos 00:07:33
y añadirle 00:07:36
el producto que acabamos 00:07:39
de crear 00:07:40
vale 00:07:41
entonces, ya este botón 00:07:42
no hay nada que hacer, no 00:07:46
no hay nada más que hacer, ha creado el producto 00:07:48
y lo ha añadido a la lista de productos 00:07:51
del pedido 00:07:52
y no hay nada que hacer 00:07:53
luego cuando tengamos hecho consultar 00:07:56
pues podemos comprobar si verdaderamente lo ha añadido 00:07:58
o no, o hemos hecho algo mal 00:08:00
o no, bueno, esto ya estaría 00:08:03
vale, del panel de insertar 00:08:05
no hay más funcionalidades que hacer 00:08:09
tenemos dos botoncitos y ya está 00:08:11
del panel 00:08:12
consultar 00:08:14
que es este 00:08:16
del palen consultar que es este 00:08:20
pues solo un botoncito, un evento 00:08:29
vamos a ponérselo 00:08:31
primero vamos a entender que queremos hacer aquí 00:08:33
que es coger el pedido que está aquí seleccionado 00:08:36
y transformar su información en un texto 00:08:40
que yo pueda poner en el textarea simplemente 00:08:43
pues ya está 00:08:45
esto 00:08:49
de ahí 00:08:50
ala 00:08:52
vale, pues gracias a que está parametrizado 00:08:54
queda muy cómodo 00:08:58
porque nuestro pedido 00:08:59
este de aquí seleccionado 00:09:01
va a ser el 00:09:03
lista pedidos 00:09:04
punto get selected 00:09:07
value 00:09:09
y ahora ya vamos a concatenar 00:09:10
toda su información en un string 00:09:13
para ponerlo en el test área. 00:09:15
Resultado. 00:09:19
Ah, la vamos a hacer una concatenación. 00:09:21
Primero, le vamos a poner a resultado 00:09:24
la descripción del pedido. 00:09:26
Descripción. 00:09:35
El código va, pasamos. 00:09:36
Porque ya lo estamos viendo a la derecha, de hecho. 00:09:39
Le ponemos la descripción del pedido. 00:09:40
¿Qué más le vamos a poner? 00:09:42
Todos los productos, nombre y lo que cuesta. 00:09:43
Así hacemos alguna operación matemática y eso. 00:09:47
Vale, pues vamos a ir producto por producto. Para cada producto en pet.get productos, primero vamos a poner lo que se ha gastado. Entonces, esto será, bueno, si no tenemos ya las unidades y el precio, pues ya le podemos concatenar resultado más igual el nombre del producto. 00:09:50
el nombre del producto, vamos a ponerle aquí después de la descripción un salto de línea 00:10:20
para que no nos quede tan feo, un salto de línea, el nombre del producto le ponemos 00:10:27
un, bueno voy a poner el precio después, un guioncito con lo que ha costado, que lo 00:10:34
que ha costado es 00:10:42
el precio 00:10:44
por las unidades. 00:10:46
El precio por las 00:10:55
unidades. Vale. 00:10:57
Y un salto de línea. Vamos a poner un salto 00:11:01
de línea también. Vamos a 00:11:03
ponerle un salto de línea 00:11:05
para que nos vaya mostrando los productos 00:11:06
uno tras otro. 00:11:09
En líneas separadas. Cuando el 00:11:11
for ha terminado, ahora en el textarea 00:11:13
Que tu textarea se llama 00:11:15
Tu textarea se llama 00:11:17
Contenido pedido 00:11:20
Pues en 00:11:21
Contenido pedido 00:11:24
Punto set 00:11:25
Contenido pedido 00:11:32
Punto set 00:11:35
Lo he debido poner mal porque no me 00:11:36
O es que está declarada más abajo 00:11:39
Puede ser 00:11:41
Contenido pedido 00:11:42
A ver 00:11:48
contenido pedido 00:11:51
se llama 00:11:56
bueno voy a 00:11:57
contenido pedido 00:12:00
punto set test 00:12:03
resultado 00:12:05
y ahora vamos a ver que pasa con contenido pedido 00:12:07
donde está para que no me la encuentre 00:12:10
haz control F 00:12:12
si bueno ya que me he puesto a navegar por aquí 00:12:16
a ver vamos a hacer una cosa 00:12:20
la voy a sacar fuera y eso va a ser más rápido 00:12:25
estamos en consultar 00:12:27
Contenido pedido. 00:12:29
La voy a sacar a campo de la clase. 00:12:33
Y me ahorro los problemas. 00:12:39
Debía estar más abajo declarada. 00:12:45
Entonces, al sacarla a variable de clase, ya no hay problema. 00:12:47
Bueno, pues vamos a ver si hasta ahí funciona. 00:12:52
Porque ahora ya sí que puedes hacer comprobaciones. 00:12:54
Venga, vamos a añadir 00:12:55
El pedido de bolis famoso 00:12:59
Y le vamos a poner un producto 00:13:01
Un producto 00:13:06
Boli azul 00:13:08
Tres y tres 00:13:08
Tres euros 00:13:16
Empezamos bien 00:13:21
Tres euros un boli 00:13:23
Vale 00:13:25
Vale 00:13:31
null pointer exception 00:13:33
no podemos 00:13:36
encontrar porque pedido 00:13:38
es null, vale 00:13:41
vamos a arreglarlo 00:13:42
esto es lo más maravilloso 00:13:44
cuando salen estas letras rojas os tiene que dar 00:13:46
un subidón de placer que te cagas 00:13:48
porque no hay cosa más bonita en programación 00:13:50
que encontrar un error, es mucho mejor que programar 00:13:52
vale, si, si estás en un examen 00:13:55
no, pero en el resto de situaciones de la vida es lo mejor 00:14:00
del mundo. 00:14:02
Vale. 00:14:06
Entonces, el error, 00:14:07
vosotros rápidamente lo que 00:14:09
hacéis es, bajáis en toda la traza 00:14:10
hasta llegar a la primera 00:14:12
línea, que en este caso es la primera, pero podría estar 00:14:14
más abajo, la primera que ya es propia de vuestro 00:14:16
código, que no son clases internas. 00:14:18
Ya hemos llegado. Vale. 00:14:20
P es nul. 00:14:22
Eh... 00:14:26
Ah, porque no tienes ningún pedido de selección. 00:14:26
Exacto, no tienes ningún pedido de selección. 00:14:27
Ah. 00:14:30
claro, claro, claro 00:14:30
muy bien, muy bien, muy listos 00:14:33
y muy rápidos sois, vale 00:14:36
venga, pues ya está 00:14:38
con esta otra base de datos hay que meterlo todo el rato 00:14:41
venga, un pedido de bolis 00:14:44
y ahora vamos a añadir producto 00:14:45
que si, antes de darle al botoncito 00:14:47
tranquila, puedo esperar 00:14:50
y escribir primero, ¿no? 00:14:52
ahora, ahora 00:14:54
00:14:56
Añadir pedido, claro, debería efectivamente poner esto deshabilitado mientras no hayamos seleccionado un este de aquí. 00:15:00
Bueno, eso ya lo hacéis vosotros. 00:15:11
Consultar, vamos a ver si realmente, aquí está, bolis, boli azul, vale, pues aquí está. 00:15:18
Vamos a ver si hubiera otro. 00:15:27
Aquí. 00:15:34
Ya está. 00:15:37
Sí, tres al pedido de gomas. 00:15:42
Vale. 00:15:44
Y voy a añadirle también la goma al pedido de bolis. 00:15:45
Venga, vamos a consultar. 00:15:48
El de bolis tiene este. 00:15:50
Y el de gomas tiene esto. 00:15:52
Vale, todo muy bien. 00:15:55
salvo porque es verdad que si arreglamos la confusión 00:15:56
de que no haya nada seleccionado 00:15:59
deshabilitándolo 00:16:00
bueno, pues actualizar, un botoncito falta 00:16:02
actualizar 00:16:05
para cambiar la descripción 00:16:10
ya está 00:16:13
pues nada 00:16:13
actualizamos 00:16:15
cogemos el pedido 00:16:18
o sea, podemos copiar y pegar del otro 00:16:21
pero bueno, vale, para no 00:16:23
cogemos pedido 00:16:24
p igual a 00:16:28
lista 00:16:30
pedidos.get 00:16:32
selected valid 00:16:34
y ahora 00:16:37
voy a evitarme 00:16:40
los null pointer exception 00:16:44
si p es diferente 00:16:49
de null 00:16:51
p.setDescripción 00:16:52
y ahora el texto de descripción se llama 00:16:56
textDescripciónAct 00:16:59
solo Act, no hay 00:17:05
Act, vale 00:17:07
pues este se llama entonces 00:17:10
ponemos la nueva descripción como 00:17:14
textDescripción 00:17:20
act.gettext 00:17:25
vale, si es nul, si es diferente de nul 00:17:29
y si es nul, el se le vamos a decir 00:17:33
seleccione un producto y así mirad que bonito 00:17:37
showMessageDialog 00:17:41
seleccione 00:17:52
producto de la lista 00:17:59
vale, pues venga 00:18:01
vamos a hacer un pedido 00:18:11
añadimos pedido 00:18:14
y vamos a actualizarle 00:18:16
la descripción 00:18:19
en vez de bolis lo voy a cambiar a gomas 00:18:22
entonces efectivamente si yo le hago así 00:18:24
me dice, eh no, ya no me sale 00:18:25
No, no, no 00:18:28
Selecciona producto de la lista 00:18:30
Vale, selecciono 00:18:31
Ahora ya sí, me debería seguir un producto actualizado 00:18:32
Porque si no, vamos a consultarlo 00:18:36
A ver si 00:18:38
¿Veis? En cuanto he seleccionado 00:18:39
Ya me ha cambiado 00:18:42
Aquí está, vale 00:18:43
Fijaos 00:18:52
¿Os habéis dado cuenta de cómo ha funcionado? 00:18:52
Gracias a que está el modelo 00:18:55
Ha refrescado automáticamente 00:18:56
Voy a volver a actualizarlo 00:18:57
este pedido de gomas le cambio la descripción 00:19:00
a rotus 00:19:03
cambiar, ha cambiado pero aquí no ha cambiado 00:19:03
todavía, hasta que no pinche yo aquí 00:19:07
no ha cambiado 00:19:09
vale, y ahora ya solo nos 00:19:10
falta eliminar 00:19:14
eliminar 00:19:15
que está aquí 00:19:20
y eliminar ya pide 00:19:26
que eliminemos de la colección 00:19:32
y del modelo 00:19:33
vale, pues cogemos el pedido 00:19:34
de nuevo 00:19:38
de lista pedidos 00:19:42
vale 00:19:44
ahora 00:19:50
vamos a quitarlo 00:19:51
del map 00:19:55
datos.delete 00:19:56
pedido 00:20:01
y le vamos a decir 00:20:01
que borre el pedido con ese código 00:20:04
ya está 00:20:06
en la colección borrado 00:20:08
bueno 00:20:09
vamos a decirle lo mismo 00:20:12
si pedido es diferente de null 00:20:14
si no seleccione pedido 00:20:15
Si es diferente de null 00:20:17
Hacemos ya todo eso 00:20:28
Borramos 00:20:30
Y vamos a quitarlo del modelo también 00:20:31
Entonces modelo 00:20:34
Lista 00:20:36
Pedidos 00:20:37
Tendrá un, si no tiene este el remove 00:20:40
Pues tendrá, lo tendrá el otro 00:20:42
Remove 00:20:43
Remove element 00:20:51
y le decimos que borre pedido. 00:20:57
Vale, borre este pedido. 00:21:02
Y si no, pues lo mismo. 00:21:07
Por favor, selecciona. 00:21:13
Selecciona pedido. 00:21:26
Pues borrar ya estaría 00:21:30
Borrado de la colección 00:21:33
Y borrado del modelo de 00:21:35
ListView 00:21:36
Y vamos a ver si realmente no funciona 00:21:37
Añadimos este pedido 00:21:40
Vale 00:21:44
Vamos a eliminar este pedido 00:21:45
Eliminado 00:21:48
Ya está, lo he eliminado de aquí 00:21:50
Y si 00:21:54
Yo no tengo ninguno, pues me dice 00:21:55
Hombre, selecciona uno, claro 00:21:57
hala, pues ya está 00:21:59
completa 00:22:01
vale 00:22:02
Materias:
Programación
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Formación Profesional
    • Ciclo formativo de grado superior
      • Primer Curso
Subido por:
Raquel G.
Licencia:
Todos los derechos reservados
Visualizaciones:
12
Fecha:
25 de marzo de 2025 - 12:51
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
22′ 11″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
121.98 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid