Saltar navegación

20260427 JavaFX_GestionTareas_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 27 de abril de 2026 por Raquel G.

3 visualizaciones

Descargar la transcripción

Venga, pues nos vamos a lo que ya nos gusta y nos interesa de verdad, que es, ah, que no veis nada, que es el código, ahora sí, que es el código, vale, pues a ver, esta es la parte bonita, esto es lo que nos interesa, a ver aquí cosa java, vale, pues entonces, primera cosa, ¿eh? 00:00:00
Primera cosa 00:00:26
Aquí esto nos sale subrayado en amarillo 00:00:29
Grave no es 00:00:32
Pero ya nosotros 00:00:34
Como programadores avezados 00:00:36
Nos escama un poco 00:00:37
Porque me aparece subrayado en amarillo 00:00:39
Entonces uno mira el avisito 00:00:41
Porque te dice 00:00:44
Oye, tabelbio es una clase genérica 00:00:49
No me la has parametrizado 00:00:52
Que mal rollo me da esto 00:00:53
Eso es como muy inseguro 00:00:55
Claro, decimos 00:00:56
anda, claro, es que TableView 00:00:58
es una estructura 00:01:00
que está pensada para contener 00:01:01
cosas, objetos 00:01:04
si yo no la parametrizo 00:01:06
en cada 00:01:08
línea de la TableView puedo 00:01:10
meter lo que me dé la gana 00:01:12
un objeto con 7 propiedades, en el otro caso 00:01:13
uno con 8 propiedades 00:01:16
eso luego a la hora de la vista 00:01:17
tratar de convertirlo, algo va a salir mal 00:01:20
ahí seguro, entonces claro 00:01:22
es que mi TableView 00:01:23
esta es para meter objetos 00:01:26
tarea, pues vamos a parametrizarla 00:01:28
con lo que yo 00:01:31
voy a meter 00:01:32
con tarea 00:01:33
¿vale? ahora ya 00:01:35
todos los métodos de table view 00:01:40
del tipo pues set 00:01:43
items, add item, los que tenga 00:01:45
para añadir elementos y quitar elementos 00:01:46
ya solo van a permitir 00:01:48
que esos elementos sean tarea 00:01:50
entonces bueno, eso es lo que queremos 00:01:52
un poco de coherencia en el código 00:01:54
eso para empezar 00:01:56
vale, entonces 00:01:58
¿qué más cosas? 00:02:01
bueno, pues luego nosotros aquí 00:02:03
cuando hemos hecho nuestra vista 00:02:05
a los campos 00:02:06
les hemos dado un nombrecito 00:02:09
y les hemos dado un nombrecito 00:02:11
porque hemos dicho, cada campo va a tener 00:02:14
un dato distinto, aunque sean datos 00:02:15
que luego sean 00:02:17
campos de la tarea, pero son datos 00:02:19
distintos, les hemos dado un nombrecito 00:02:21
entonces, ese 00:02:23
nombrecito, lo que es esa variable 00:02:25
que sería la casilla 00:02:27
dentro del table view 00:02:29
esa variable 00:02:30
de qué tipo es 00:02:32
como la ubico 00:02:35
la variable tabla completa 00:02:36
esta 00:02:38
está claro, es el table view 00:02:40
pero la variable 00:02:43
solamente un campito 00:02:45
de qué tipo es 00:02:47
entonces ahí uno busca, indaga 00:02:49
y le sale lo que podía suponer 00:02:51
que es table column 00:02:53
Ah, pues yo estoy usando 00:02:54
Dos table column 00:02:57
Aquí 00:03:00
Que necesito ligarlas desde Java 00:03:00
Porque voy a poner en ellas datos 00:03:03
Pues dos table column necesito 00:03:05
Pues vamos a ponerlas aquí 00:03:07
¿Vale? 00:03:10
Este salto, lógicamente 00:03:17
Hasta aquí podríamos haber trabajado 00:03:18
Sin chat GPT y sin documentación 00:03:20
Esto último 00:03:22
Ya tendríamos que haber buscado 00:03:25
Lo del table column 00:03:26
Pues no se nos va a ocurrir así 00:03:27
Solo en la marcha 00:03:29
Vale, entonces mi primera columna 00:03:37
Table column se llamaba col nombre 00:03:39
Y la otra se llamaba col fecha, ¿verdad? 00:03:40
Pues venga 00:03:43
Col nombre 00:03:44
Voy, voy, voy 00:03:48
Col fecha 00:03:59
Tranquila 00:04:00
Vale, entonces de nuevo 00:04:02
De nuevo me sale en amarillo 00:04:05
Otra vez me mosquea 00:04:07
Lo miro y me dice 00:04:09
es una clase genérica con dos parámetros 00:04:10
¿qué necesitas ahí? 00:04:14
vale, pues uno de ellos 00:04:18
será sí o sí 00:04:20
el tipo de dato de la columna 00:04:21
seguro, el primero es un string 00:04:23
y el segundo es un local date 00:04:25
porque ahí queremos poner una fecha 00:04:27
un string y un local date 00:04:29
pero el primero o el otro 00:04:31
¿qué será? pues aquí de nuevo 00:04:34
uno puede tener una intuición 00:04:35
maravillosa sobre la marcha o lo acaba buscando 00:04:38
y claro, los dos 00:04:40
parámetros son 00:04:42
uno, la clase 00:04:45
a la que pertenecen 00:04:47
los objetos de la tabla en la que estás insertado 00:04:49
que es tarea 00:04:51
y el otro es tu campo específico a qué tipo es 00:04:51
pues entonces 00:04:55
esto lo deberíamos parametrizar a 00:04:57
tarea string 00:04:59
y esta lo deberíamos parametrizar 00:05:04
a tarea 00:05:08
local date 00:05:10
vale, vamos a hacer 00:05:13
con el initialize esto una pequeña 00:05:20
cosa de prueba 00:05:22
y es 00:05:23
vamos a añadir 00:05:26
en el momento de inicializar 00:05:28
una tarea cualquiera que creamos 00:05:30
aquí de prueba, a ver aquí 00:05:32
que pasa 00:05:34
vale, pues entonces 00:05:35
esto funciona 00:05:38
como el combo box 00:05:40
los datos 00:05:42
de la table view 00:05:44
tendrán que estar en alguna colección 00:05:46
y yo luego esa colección 00:05:48
se la fijo a la tarea 00:05:49
bueno, esa colección si es observable list 00:05:51
pues mucho mejor 00:05:54
pues venga, nos vamos a hacer una observable list 00:05:55
de tarea 00:05:58
perdón, no, esto no se instanciaba 00:06:03
si, esto se instanciaba como 00:06:15
fx collections 00:06:17
punto 00:06:19
get o create observable list 00:06:21
o observable 00:06:25
o con qué método 00:06:27
se creaba esto 00:06:29
createObservableList 00:06:31
o como era esto 00:06:34
observableArrayList 00:06:35
observableArrayList 00:06:45
vale, aquí era, este 00:06:47
por ejemplo, vale 00:06:48
entonces 00:06:50
la vamos a sacar fuera de hecho 00:06:55
la vamos a sacar fuera 00:06:58
¿vale? esta va a ser 00:07:01
la lista 00:07:04
esta va a ser la lista 00:07:05
que tenga los elementos de mi 00:07:08
tabla, la saco fuera 00:07:10
para que otros métodos puedan acceder a ella 00:07:12
lógicamente, la saco fuera 00:07:14
¿vale? y ahora 00:07:16
en el inicializar este voy a hacer como 00:07:18
prueba, añadirle 00:07:20
una tarea, una cualquiera 00:07:22
la podría haberle dado un fichero pero bueno la creo 00:07:24
como prueba 00:07:26
y se la pongo a la table view 00:07:27
a ver si me funciona 00:07:30
que es la primera prueba que uno tendría a hacer 00:07:31
es una colección sin más 00:07:33
es una array list, pero la ventaja que tiene 00:07:40
es que está unida 00:07:42
al elemento 00:07:44
al que tú la fijes luego 00:07:47
posteriormente, que no te la vamos a fijar 00:07:48
a las tareas 00:07:50
una vez que ya está fijada la tabla 00:07:52
con el set items ya está fijada 00:07:54
si alguien, como resultado 00:07:56
de algún evento, lo que sea, añade 00:07:58
o quita algún elemento del observable list 00:08:00
pues eso 00:08:03
se refleja en la vista 00:08:04
¿vale? o sea es una colección 00:08:06
que va unida 00:08:09
a un control 00:08:10
va unida 00:08:11
claro, tendrá los métodos 00:08:13
de cualquier array list 00:08:19
supongo 00:08:20
seguramente, si no lo sé 00:08:23
vale, vamos a hacer una 00:08:24
Primera prueba 00:08:28
Vale, vamos a hacer una primera prueba 00:08:29
Que vamos a crearnos una tarea 00:08:34
Y como claro, os empeñasteis en ponerle 00:08:36
Tanto 00:08:47
Tantos 00:08:48
Bichos de estos 00:08:50
Set id 00:08:52
Set 00:08:56
Nombre 00:09:02
Comer 00:09:04
Set 00:09:08
Descripción 00:09:11
Macarrones 00:09:15
Set 00:09:18
fecha 00:09:23
esto lo podíamos crear 00:09:24
con local date, tenía un 00:09:27
parse 00:09:29
que tenía un formater por defecto 00:09:30
que creo recordar que hicimos el otro día que era 00:09:34
los 4 del año, mes y día 00:09:36
pues entonces, esta se va a tener que hacer 00:09:38
en el 2000 00:09:41
antes del 2020 00:09:43
tienes que comer macarrones, antes de 00:09:44
el 1 de marzo 00:09:46
el 2027 hay que comer macarrones 00:09:49
como sea 00:09:51
Prueba.setCompletadaFalse 00:09:52
Vamos a añadírsela a la observable 00:10:02
Y ahora a nuestra tableView 00:10:18
Que se llamaba tabla 00:10:27
Le fijamos 00:10:29
Buscamos el método 00:10:35
Que más pegue a fijarle una lista de elementos 00:10:39
Siempre tenderíamos a buscar por el set 00:10:43
Antes de nada 00:10:47
Y si yo busco por el set antes de nada 00:10:48
Pues encontraría un set items donde le pongo una lista observable 00:10:50
Pues justo lo que estaba buscando 00:10:53
¿Por qué no le hago el qué? 00:10:55
A ver, podría 00:11:14
A ver, pero eso es una línea de código 00:11:15
Una línea de código no la puedo hacer fuera de mi método 00:11:17
A ver, esto es una sentencia de código 00:11:19
Una sentencia de código tú no lo puedes hacer 00:11:26
Fuera de ningún método 00:11:29
Vale, pues entonces 00:11:30
Vamos a ver si esto hace algo 00:11:35
Entonces 00:11:37
Vale, vamos a ver 00:11:40
Esto es 00:11:55
Mis tareas 00:11:58
Mis tareas 00:12:00
Pues no, ¿vale? 00:12:03
Sí, pero yo 00:12:11
Sabía que lo iba a mostrar 00:12:12
Pero 00:12:13
No por esto 00:12:18
Esto es otra cosa 00:12:23
Bueno, en cualquier caso la idea era que no funcionara 00:12:24
Aunque 00:12:28
No, creo que no por eso 00:12:29
Eso que ha salido ahí me ha dado mal rollo, pero bueno 00:12:31
Ahora lo miramos 00:12:33
Vale, entonces, ¿qué 00:12:35
¿Qué pasa aquí? A ver, es que aquí hay algo 00:12:36
Que está sin resolver 00:12:39
Yo le he dicho a la tabla 00:12:40
Que se quede con estas tareas 00:12:43
pero luego la vista 00:12:45
no muestra todos los campos 00:12:48
la vista va a mostrar solo dos cosas 00:12:49
y no sabe que cosas son 00:12:51
o sea mi tabla tiene dos columnas 00:12:53
col nombre y col fecha 00:12:56
pero no sabe que tiene que colocar en col nombre 00:12:57
y no sabe que tiene que colocar en col fecha 00:13:00
es imposible que esto funcionara 00:13:01
¿vale? porque eso nos falta 00:13:03
¿qué muestro en esta columna y qué muestro 00:13:05
en esta otra? tendremos 00:13:08
que ligar esta columna 00:13:09
a algún campo 00:13:12
de la clase tarea 00:13:13
y tendremos que ligar esta otra columna 00:13:15
a algún campo de la clase tarea 00:13:18
¿cómo? me puedo empezar 00:13:19
aquí ya, una vez que yo ya 00:13:22
he identificado que es que 00:13:24
me falta un vacío, un agujero negro 00:13:25
pues esas preguntas concretas 00:13:27
que yo tengo perfectamente 00:13:30
aisladas, pues se las pregunto 00:13:31
a una IA sin problema porque están aisladas 00:13:34
y sé lo que necesito y sé lo que estoy buscando 00:13:36
pero si me pongo ahora yo a buscar 00:13:38
métodos, a ver cómo fijo 00:13:39
el contenido de una columna 00:13:41
o una esta, pues puede que lo encuentre 00:13:43
explorando métodos, pero eso ya se me hace 00:13:45
un poco pesado 00:13:47
pero una cosa atómica como esta 00:13:48
claro que la pregunto 00:13:51
entonces 00:13:53
¿cómo le podríamos preguntar 00:13:55
a vosotros os gusta Gemini, verdad? 00:13:57
vale, pues es que yo 00:14:07
soy de otra generación en las que nos 00:14:09
hablamos, entonces yo le digo 00:14:11
¿cómo 00:14:13
además le pongo hasta las tildes 00:14:15
para que no tenga que gastar agua de los lagos de Canadá 00:14:17
perdón 00:14:19
ya, tienes toda razón 00:14:21
sí, pero vale, bueno, venga 00:14:25
¿cómo 00:14:27
le digo 00:14:28
a una 00:14:31
table column 00:14:33
java fx? porque aquí 00:14:39
sé exactamente lo que quiero 00:14:42
y si lo que me responde es una tontería que podría 00:14:43
ocurrir, como yo sé 00:14:46
exactamente lo que necesito 00:14:48
pues no haría un copia y pega, sino diría 00:14:49
no, no, no, no es exactamente eso lo que te pido 00:14:51
te estoy pidiendo esta otra cosa 00:14:54
¿vale? 00:14:55
dejaba fx a que campo 00:14:56
enlaza 00:15:00
de su entidad 00:15:02
no está muy bien expresado pero es muy lista 00:15:04
¿no? pues ya está 00:15:06
sell value factory 00:15:07
vale, dame un ejemplo, si no 00:15:14
vale 00:15:16
pues a esta columna le pones 00:15:18
en su celda 00:15:22
este campo 00:15:23
pues ya lo tenemos 00:15:25
Se llama nombre 00:15:27
00:15:34
Sí, jolines, pues igual es que nos ha estado oyendo 00:15:38
Mientras estábamos haciéndolo 00:15:41
Vale, pues es esto, ¿no? 00:15:43
Es esta línea la que necesitamos 00:15:47
Venga, pues ¿dónde hacemos esto? 00:15:48
Esto es una sentencia de código 00:15:52
No la hacemos aquí, la tendremos que hacer 00:15:54
El que inicialice este 00:15:56
El que inicializa lo que le falte a los controles 00:15:57
Pues aquí, mi columna nombre 00:16:01
Tú ponte como 00:16:04
En mi tarea, como el campo quiero 00:16:06
Nombre, mira, está clavada 00:16:09
Pero luego nos falta el local date también 00:16:10
El property value factory 00:16:12
Y ahora 00:16:14
Mi columna fecha 00:16:16
New 00:16:18
Tarea 00:16:23
Local date, que es fecha 00:16:24
Vale 00:16:27
Fecha 00:16:29
Creo que nos ha contestado bien 00:16:29
No tenemos más que probarlo 00:16:34
vale, a mi columna fecha 00:16:36
oye tú, te tienes que rellenar 00:16:39
con la propiedad fecha de tarea 00:16:41
de aquí la importancia 00:16:43
del primer parámetro de la columna 00:16:45
para decirte 00:16:47
a qué entidad estás enganchada 00:16:49
ahora es cuando entendemos por qué es tan importante 00:16:50
este primer parámetro 00:16:53
para entender este campo de qué entidad viene 00:16:54
vale, pues entonces 00:16:57
vamos a probar 00:17:05
mis tareas 00:17:08
tareas 00:17:10
es que el error de antes me había mosqueado mucho 00:17:11
no debería haber salido 00:17:14
no, no, no, a mí no 00:17:15
porque es que el error de antes no tenía que ver 00:17:18
con esto y no sé por qué me empezó a salir esto 00:17:21
yo algo he hecho raro cambiando algo 00:17:22
le habré pasado 00:17:24
algo en mi código está mal 00:17:27
o sea, me refiero que he mezclado dos clases 00:17:30
he hecho algo raro 00:17:32
fold maven, algo de maven 00:17:33
yo no sé qué he hecho aquí raro 00:17:40
¿Pero a ti te funciona? 00:17:42
A mí sí, pero antes cuando lo... 00:17:44
O sea, que no tengo ningún error 00:17:45
Sí, o sea, antes no te ha salido este error 00:17:46
Claro, es que no me tendría que haber salido 00:17:49
Tendría que ser la tabla en blanco, que era lo que yo esperaba 00:17:51
Pero esto es algo de que 00:17:53
Mi código está mal 00:17:55
¿En el local date? 00:17:56
A ver 00:18:04
Ah, en el parse 00:18:04
Vale, vale, vale 00:18:10
Ah, muy bien visto 00:18:12
Claro, efectivamente 00:18:19
Vale, que estaba mal el formato de la fecha 00:18:20
Vale, vale 00:18:23
Vale, perfecto 00:18:23
Vale 00:18:29
Vale, ahora ya sí 00:18:29
Vale 00:18:38
Esto es lo que no me gusta 00:18:40
Que 00:18:42
El tamaño es fijo 00:18:44
Y si no lo completas 00:18:46
Esto te aparece en blanco 00:18:49
Que no me gusta nada 00:18:50
Y esto 00:18:52
Me parece que no hay un 00:18:53
Algo 00:18:56
Por vía fxml 00:18:58
Fijar el ajuste que se ajusta al menos ahí 00:19:00
Tienes que hacerlo por código 00:19:02
En función del ancho de columna o no sé qué 00:19:04
Pero bueno, eso si queréis lo podéis 00:19:06
¿Cómo? 00:19:09
Pues lo habrás puesto mal, claro 00:19:17
Exacto 00:19:19
Has puesto aquí 00:19:22
Col nombre, nombre 00:19:23
Col fecha, fecha 00:19:26
¿Qué? 00:19:27
Puse integer, sí 00:19:36
Por si tengo que parametrizar por integer 00:19:44
Por ejemplo, si yo quisiera mostrar el id 00:19:47
Aquí tengo que poner integer obligatoriamente 00:19:50
Porque int no puedo poner 00:19:54
Que tampoco pasaría nada porque haría luego 00:19:56
Aunque el otro estuviera como int, haría la conversión automática 00:20:00
Pero bueno, queda más bonito el integer 00:20:02
No, no tienes por qué 00:20:04
Porque ya lo hereda de col nombre 00:20:14
Es decir, desde el momento en que tiene esto 00:20:16
Estas dos 00:20:20
Se refiere a coge 00:20:21
Los parámetros de col nombre 00:20:23
¿Vale? 00:20:26
Al tener estas flechitas ya los coge de ahí 00:20:28
¿Vale? 00:20:30
No, a ver, si yo le hubiera puesto 00:20:37
Otro campo 00:20:39
Que fuera integer 00:20:40
Aquí pondría entonces el integer 00:20:42
Y aquí 00:20:45
Y aunque luego ese campo estuviera como int 00:20:46
No te daría error 00:20:48
Porque el int Java lo convierte 00:20:49
Automáticamente al int de él 00:20:52
¿Vale? No te daría 00:20:53
Estoy casi segura de que no te daría 00:20:55
Bueno, pues esto está muy bien y muy bonito 00:20:57
Pero nos faltan cuatro eventos 00:20:59
El de pinchar aquí 00:21:01
El de los botones 00:21:02
Y el de los botones 00:21:04
Entonces vamos a empezar por el 00:21:06
Este 00:21:10
Porque el de los botones pues sería 00:21:10
Añadir tarea 00:21:13
pedir los datos, crear la tarea 00:21:15
y añadirla a la lista observable 00:21:17
en principio 00:21:20
y con esto igual y con esto lo mismo 00:21:20
bueno, habría que explorar, a ver 00:21:24
aquí modific 00:21:25
buscar en el observable la tarea 00:21:28
cambiarle el boolean y ya se reflejaría 00:21:29
vale, pero vamos con esta 00:21:31
este era el evento de 00:21:33
un mouse click, vale 00:21:35
pues entonces 00:21:37
mostrar tarea 00:21:38
entonces aquí 00:21:41
tenemos que coger la tarea 00:21:44
seleccionada de la tabla 00:21:46
pues aquí es ponerse a explorar en los 00:21:48
métodos, que método 00:21:50
me devuelve la tarea que yo he seleccionado 00:21:52
que no me va a devolver los dos campos 00:21:55
solamente, me devuelve la tarea entera 00:21:56
porque está parametrizada, eso es lo interesante 00:21:58
que la tabla solo me muestra 00:22:00
lo que yo le he dicho, pero en realidad 00:22:02
tiene dentro la tarea entera 00:22:05
porque está parametrizada la tarea entera 00:22:06
pues entonces, si uno busca 00:22:08
aquí, o le pregunta 00:22:10
y en concreto, ¿cómo saco 00:22:12
de una table view el objeto 00:22:15
que está seleccionado en un momento dado? 00:22:16
Pues 00:22:20
primero 00:22:21
tiene que sacar el modelo 00:22:23
porque esto es igual que en swing 00:22:24
y luego tiene que sacar 00:22:26
el selected 00:22:29
item o item sin más 00:22:30
selected item 00:22:33
¡Hala! Pues esta es la tarea 00:22:34
seleccionada, esta es 00:22:37
Ahora, ¿cómo la 00:22:42
mostramos? 00:22:44
pues podríamos ponerlo en una etiqueta, 00:22:46
pero es un poco feo. 00:22:48
Vamos a hacer una ventanita emergente. 00:22:48
Lo que en Swim se llamaba JOptionPane, 00:22:51
aquí resulta que se llama Alert. 00:22:55
Entonces, uno puede crear un objeto Alert, 00:22:58
que es una ventanita que sale, 00:23:02
que se puede configurar si es ventanita de tipo Información. 00:23:04
Para esto en concreto, 00:23:07
pues uno le pide el código también a quien quiera. 00:23:09
Para esta cosa en concreto. 00:23:14
porque sabe exactamente lo que quiere 00:23:16
entonces si sabemos exactamente lo que queremos 00:23:18
si tenemos el control de nuestro código 00:23:19
usamos esto con toda la alegría del mundo 00:23:21
entonces dame la 00:23:24
sintaxis 00:23:26
de la 00:23:27
emergente 00:23:29
alert 00:23:32
de java fx 00:23:33
vale porque alert 00:23:36
yo os digo o suena 00:23:38
que es una emergente 00:23:40
con datos 00:23:42
pues en lugar de buscar su sintaxis 00:23:42
por ahí, por la documentación 00:23:45
la preguntamos y ya está 00:23:47
dame la sintaxis de la 00:23:48
emergente de JavaFX 00:23:51
pues venga, mira te lo dice aquí 00:23:52
creas 00:23:55
el tipo de objeto alert, si es de 00:23:57
información, si es de 00:23:59
configura su aspecto, su título 00:24:00
pone su contenido 00:24:03
y la muestras, pues venga 00:24:05
vamos a copiar directamente todo esto 00:24:07
la importamos, alert 00:24:08
Venga, vamos a crear el objeto alert 00:24:14
¿Qué título le vamos a poner? 00:24:17
Le vamos a poner datos tarea 00:24:20
Datos tarea 00:24:21
Header text 00:24:24
Cabecera, puedes poner null para quitarla 00:24:26
Pues null porque no quiero cabecera 00:24:29
Y ahora, el contenido de la emergente 00:24:30
Los datos de la tarea 00:24:35
Pues vamos a poner 00:24:36
Los datos de la tarea 00:24:39
Vamos a poner 00:24:40
La descripción 00:24:41
Y si está completada o no, por ejemplo, para que no salga mucho 00:24:43
Pues le vamos a poner descripción de la tarea 00:24:47
Que será t.getDescripción 00:24:50
Concatenado con un espacio 00:24:56
Y le vamos a poner si está completada o no 00:24:59
Y para eso esto depende de t.isCompletada 00:25:03
Si está completada ponemos 00:25:08
completada 00:25:12
y si no pendiente 00:25:13
completada 00:25:15
y si no ponemos pendiente 00:25:17
voy a bajar 00:25:20
esto aquí abajo 00:25:22
vale, pues ya le he puesto 00:25:23
el texto que quiero que salga en la emergente 00:25:40
que es la descripción de la tarea 00:25:42
y luego en función de si está completada o no 00:25:44
que ponga completada o pendiente 00:25:46
y ahora ya que me muestra la emergente 00:25:47
me la muestra 00:25:50
y tendrá algún botoncito para cerrarla suponemos 00:25:51
ala pues ya tengo el evento de mostrar tarea 00:25:54
repito 00:25:56
para eso he decidido 00:25:58
como quiero que me la muestre, con una emergente 00:26:00
muy bien 00:26:02
como es la emergente, ah alert 00:26:03
me suena que es alert porque he buscado, pues ahora pido 00:26:06
la sintaxis concreta de alert 00:26:08
vale, pero siempre 00:26:10
cuando nosotros sabemos exactamente 00:26:12
que queremos, no copiamos código 00:26:14
por copiar y le decimos 00:26:16
hazme una aplicación que haga esto, pues no le decimos 00:26:17
esto, hacemos la aplicación y para 00:26:20
una cosa en concreta, pues la pedimos 00:26:22
vamos a ver si hemos acertado 00:26:24
mis tareas 00:26:26
a ver 00:26:31
toma ya, ahí está, los macarrones que están 00:26:36
pendientes 00:26:39
ya está, vale 00:26:40
hay más ventanas alert 00:26:46
esta es la que muestra información 00:26:48
la isla típica 00:26:51
de aceptar, cancelar 00:26:53
y cuando tú das aceptar 00:26:54
o cancelar, lo que ocurre 00:26:57
es que este método 00:26:59
alert show and wait 00:27:00
tiene un valor de respuesta 00:27:04
que tú lo puedes coger, veis que tiene ahí 00:27:06
un button type 00:27:08
entonces, en este caso es que solamente 00:27:08
hay un botón posible que tú puedes hacer el pulsado 00:27:12
que es el de aceptar, pero hay otros 00:27:14
alert que no son de tipo 00:27:16
informatio, imaginaos que son de tipo 00:27:18
por ejemplo 00:27:20
confirmatio 00:27:20
por ejemplo 00:27:24
¿cómo es el alert tipo confirmatio? 00:27:25
pues 00:27:29
a ver un momentito 00:27:30
un momento y ya nos vamos 00:27:31
el alert confirmation 00:27:36
mis tareas 00:27:38
este es el alert 00:27:42
confirmation, que como veis 00:27:50
tiene dos botones 00:27:52
entonces, ¿cómo distingues tú desde 00:27:53
código cuál se ha pulsado? 00:27:56
pues lo tienes 00:27:59
que recoger aquí 00:28:00
este te lo devuelve 00:28:02
como valor de retorno 00:28:04
aquí lo hemos tirado a la basura 00:28:05
pero tú podrías con un if 00:28:07
si el botón que se ha pulsado 00:28:09
es aceptar, hago lo que sea 00:28:12
si el que se ha pulsado es cancelar 00:28:13
hago otra cosa 00:28:16
vale, en este caso 00:28:17
como nuestro alert era de information 00:28:19
solo había un botón, nos da igual 00:28:21
capturar por tanto, perdón 00:28:24
capturar no, quedarnos 00:28:26
con ese 00:28:28
vale, el information es solo 00:28:28
un, vale, pues ya está 00:28:35
No, este no es ningún evento 00:28:51
No, no, el evento que has hecho para 00:28:53
A este onMouseClick 00:28:55
Porque este no tiene por defecto 00:28:58
OnMouseClick 00:29:00
Vale 00:29:01
Y nos vamos 00:29: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:
3
Fecha:
27 de abril de 2026 - 13:17
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
29′ 07″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
127.15 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid