Saltar navegación

Clase 06-05-24 - 3 - 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 6 de mayo de 2024 por Raquel G.

11 visualizaciones

Descargar la transcripción

esta opción mía no está tan mal 00:00:00
ah, pues 00:00:03
así no vemos nada 00:00:04
vale, primero 00:00:06
vamos a completar 00:00:08
espera, luego se lo comentas, de verdad, me caso 00:00:09
aguanto un rato callado, de verdad 00:00:14
un ratito solo 00:00:16
bueno, pues solo tienes que aguantar 10 minutos 00:00:17
más, de verdad, luego los últimos 5 00:00:20
ya todo esto ya se 00:00:22
vale, a ver, la opción 00:00:23
nuevo, la opción nuevo que era la 00:00:26
de si 00:00:28
el ítem 00:00:29
que le hemos pasado al evento, ese archivo 00:00:32
¿vale? pues en la opción 00:00:35
nuevo ya había pedido un nombre 00:00:37
y ¿qué he incorporado ahora? 00:00:39
he incorporado ahora esto 00:00:41
que decía aquí de, oye 00:00:43
en la opción nuevo, si el nombre 00:00:45
ya existe, que te diga 00:00:47
oye ya existe un fichero con ese nombre, mete otro 00:00:49
y así esté todo el rato, entonces ¿qué es lo único 00:00:51
que he cambiado en la opción? pues lo he cambiado 00:00:53
he metido un bucle do while 00:00:56
un bucle do while que está 00:00:57
todo el rato 00:00:59
poniendo el 00:01:00
el mensajito 00:01:02
introduzca nombre de archivo 00:01:04
todo el rato 00:01:05
todo el rato 00:01:06
mientras 00:01:07
el fichero exista 00:01:08
entonces 00:01:11
lee nombre 00:01:13
con el J 00:01:13
opción pane 00:01:14
y mientras exista 00:01:15
vuelve a pedir 00:01:16
para eso 00:01:17
me he limitado a hacer 00:01:18
un existe archivo 00:01:18
lo primero que hace 00:01:20
es esto 00:01:21
devuelve 00:01:21
contiene la clave 00:01:23
nombre 00:01:25
ya está 00:01:25
este es el fichero 00:01:25
existe archivo 00:01:26
ya está 00:01:27
no tiene nada más 00:01:27
vale 00:01:28
Pues entonces, aquí para que los option pane a partir del segundo te muestre el fichero ya existe y quede más bonito, es decir, para que el efecto sea este, a ver, voy a, como ahora mismo no hay archivos, el primero me va a dejar crearlo, ¿no? 00:01:29
un nombre de archivo, gastos 00:01:50
ala, aquí está 00:01:52
pues bueno, vamos a imaginar que yo ahora quiero 00:01:54
abrir otro 00:01:56
he trabajado 00:01:58
con otro, lo que sea, y ahora voy a 00:02:00
nuevo 00:02:02
me dice, pues nombre archivo 00:02:03
y le vuelvo a dar gastos, este ya existe 00:02:06
entonces me dice 00:02:08
el fichero ya existe, introduzca nombre de archivo 00:02:10
y así se está todo el rato 00:02:12
el fichero ya existe 00:02:14
hasta que le ponga uno que no existe, ¿no? 00:02:15
vale, ese es el efecto 00:02:18
que quiero lograr, que quiero ahora 00:02:20
abrir, venga 00:02:22
este, oye que el fichero ya existe 00:02:24
introduce otro 00:02:26
este no 00:02:27
oye que el fichero ya existe, introduzca 00:02:28
otro, entonces para lograr el efecto 00:02:32
de que el mensajito del 00:02:34
option pane cambie a partir de la 00:02:36
segunda vez que te lo pide 00:02:38
simplemente he hecho esto 00:02:39
me he creado aquí un mensaje para 00:02:41
concatenar antes de 00:02:47
introduzca nombre archivo para concatenar. 00:02:49
Entonces, si es la primera 00:02:52
vez que entro en el do while, 00:02:53
si es la primera vez, y sé que es 00:02:55
la primera vez que entro en el do while porque el nombre todavía 00:02:57
está nul. Entonces, si es la 00:02:59
primera vez que entro en el do while, 00:03:01
el mensajito a concatenar 00:03:03
antes de introduzca que sea vacío. 00:03:05
Y si 00:03:08
nombre no es nul, es que es la segunda 00:03:09
vez que entro en el do while. Entonces, 00:03:11
en ese caso, que el mensajito a concatenar 00:03:13
sea ese. ¿Vale? No os olvidéis 00:03:15
del operador ternario y de estas cosas 00:03:17
porque son las que hacen los códigos ágiles 00:03:19
vale, pues ahora ya 00:03:21
he hecho este bucle do while 00:03:22
que está simplemente 00:03:24
mostrando un jota opción para introduzca, introduzca, introduzca 00:03:25
mientras el fichero exista 00:03:29
y luego además con el truco 00:03:31
este de concatenar con un mensajito antes 00:03:33
a partir de la segunda 00:03:35
me está avisando, ya existe 00:03:36
y ya está, he incorporado este do while 00:03:38
y una vez que ya ha salido de aquí 00:03:41
guardo el fichero por ahora sin contenido 00:03:43
lo creará nuevo 00:03:45
fijo el archivo 00:03:47
de trabajo con el nombre con el que estoy trabajando 00:03:49
pongo 00:03:51
el textarea vacío 00:03:53
por si estuviera lleno de antes de haber trabajado 00:03:54
con otro, y ya está, y pongo la etiqueta 00:03:57
o sea, lo que he cambiado es el do while 00:03:59
en realidad, ¿vale? bueno, ahora llevámonos 00:04:01
a las otras opciones que estaban sin hacer 00:04:03
esta está clara, ¿no? la de abrir 00:04:04
la de abrir 00:04:07
pues aquí abrir es lo mismo 00:04:08
pero tenemos que estar pidiendo todo el rato 00:04:10
mientras la condición sea la contraria 00:04:13
es el mismo do while 00:04:15
pero lo que he cambiado es la condición, mientras no 00:04:16
exista, o sea es el mismo do while 00:04:18
de arriba, pero he cambiado la condición 00:04:20
mientras no exista, porque ahora 00:04:23
estamos abriendo, mientras no exista 00:04:24
patatín, y el mensajito que 00:04:26
pongo precisamente es el contrario, el fichero no 00:04:28
existe, introduce otro, el fichero no existe, introduce 00:04:30
otro, entonces 00:04:32
abrir es un bucle que está todo el rato 00:04:34
mientras el fichero no exista 00:04:36
y una vez que ha salido del bucle es porque 00:04:37
el fichero existía 00:04:40
lo recupera con el método 00:04:42
lo recupera 00:04:44
con el método y lo fija en el área de texto 00:04:46
y ya está, entonces para eso me he hecho 00:04:48
el método recuperar archivo 00:04:50
que tiene una línea 00:04:52
coge el valor de ese nombre y ya está, tiene una línea 00:04:53
ese archivo, recuperar archivo tiene esta línea 00:04:56
y se acabó 00:04:58
y ahora lo fija 00:04:59
en el área de texto y ya tenemos 00:05:02
nuevo archivo de trabajo que es este 00:05:04
si había uno de antes 00:05:05
lo que no he hecho es que si tú abres uno y ya había uno 00:05:08
no te dice ¿quieres guardar el que había? 00:05:10
no, asume que tú lo has dado a guardar antes 00:05:12
lleno nada, para no ir complicando 00:05:14
el código, ¿vale? 00:05:16
entonces la opción de abrir ya está completa 00:05:18
te está todo el rato pidiendo 00:05:20
mientras no exista y cuando 00:05:22
existe te lo fija, la de guardar 00:05:24
la de guardar es la más fácil 00:05:26
¿qué hace? le da al método 00:05:28
de guardar archivo 00:05:30
con el nombre del archivo de trabajo 00:05:31
con el que estemos trabajando, que está siempre ahí 00:05:34
y con el contenido del área de texto 00:05:36
ya está, guardar archivo es sólo eso 00:05:38
guarda archivo 00:05:40
dando el nombre del archivo de trabajo 00:05:42
que es con el que estás trabajando 00:05:44
y el contenido del área de texto y se acabó 00:05:46
y luego he puesto un mensajito que te avise que lo ha guardado 00:05:48
para que no sea tan 00:05:51
incómoda la interfaz 00:05:52
guardar como 00:05:53
es como guardar pero va a pedir previamente 00:05:55
un nombre, de nuevo un bucle 00:05:58
que se está pidiendo nombre 00:06:00
mientras exista, porque el guardar 00:06:02
como yo lo he puesto ahí para que sea 00:06:05
como un nombre de archivo que no exista 00:06:06
porque si no ya pisas el anterior 00:06:08
pero bueno, si no queréis poner esta restricción 00:06:09
pues no pongáis bucle y ya está 00:06:12
entonces otra vez el mismo bucle 00:06:13
que está todo el rato mientras el fichero 00:06:15
exista, te dice introducir otro nombre 00:06:18
para no pisar el que existe 00:06:20
una vez que lo tienes, guardas el archivo 00:06:21
te muestra archivo guardado y se acabó 00:06:23
y ahora ya el nuevo archivo de trabajo 00:06:25
se cambia con el nuevo nombre que has guardado 00:06:28
y la de cerrar 00:06:30
esta no tiene nada 00:06:32
cerrar es todo a null, todo vacío 00:06:33
y todo vacío 00:06:35
Y ya está 00:06:36
Estas serían todas las opciones de archivo 00:06:38
Las de utilidades no 00:06:40
Entonces si las probamos 00:06:41
Lo que vosotros tendréis que conseguir 00:06:47
Contra su programa 00:06:50
Ahora mismo no tengo ninguno 00:06:51
Entonces ahora mismo que yo le dé a abrir 00:06:53
Me voy a meter en un bucle infinito 00:06:55
Porque es que si yo le doy a abrir 00:06:57
Aquí voy a estar todo el rato 00:06:58
Es que no tengo ninguno 00:07:00
Entonces va a estar todo el rato 00:07:01
No existe, no existe, no existe 00:07:03
Entonces nada, cancelar 00:07:04
Fuera 00:07:06
Bueno, es que como me he metido en un bucle, estoy en un bucle infinito con este jOptionPanel, ¿vale? 00:07:08
Entonces, vamos a, tendría que, si la opción, si le hemos dado a cancelar, que se puede recoger también, 00:07:15
pues, pero bueno, eso ya lo completé vosotros si queréis. 00:07:23
Vale, pues, me metí en este bucle infinito, así que tengo que parar el proceso. 00:07:28
a ver 00:07:35
vale, pues hacemos uno nuevo 00:07:36
ahora, uno nuevo, venga 00:07:42
nombre de archivo 00:07:44
aquí no va a haber problema porque es el primero 00:07:45
pues gastos, venga 00:07:48
este 00:07:50
y trabajamos con el que le queremos guardar 00:07:52
pues vale, lo guardamos 00:07:54
ya está, el archivo ya está guardado 00:07:55
vamos a hacer otro para poder luego abrir uno 00:07:57
otro archivo, gastos, pues venga 00:07:59
ingresos 00:08:02
ya lo tenemos 00:08:04
guardado 00:08:05
Archivo guardado 00:08:12
Ya tenemos dos archivos guardados con el contenido 00:08:14
Vamos a suponer que le damos a cerrar 00:08:16
Pues ya está, cerrado, aquí no hay nada 00:08:18
Vamos a abrir uno de ellos 00:08:20
Nos hemos equivocado poniendo el nombre 00:08:22
Uy, no existe, pon uno que exista 00:08:24
Gastos 00:08:27
Que habíamos hecho uno, se llamaba gastos, ¿verdad? 00:08:28
Gastos 00:08:32
Pues ala, aquí está 00:08:32
Que lo quiero guardar 00:08:33
Con otro nombre 00:08:37
Pues venga, guardar como 00:08:37
Gastos 2 00:08:39
ala, guardado 00:08:42
y ya está aquí como gastos 2, ahora tengo 3 archivos 00:08:46
ingresos, gastos, gastos 2, puedo abrir el que quiera 00:08:48
por ejemplo, vamos a abrir el de ingresos 00:08:52
pues este era el de ingresos 00:08:55
y ya está, ya tenemos todas las opciones 00:08:59
simuladas y completas, claro, le faltan cosas 00:09:02
por pulir, pues si yo aquí he editado este 00:09:05
no le doy a guardar 00:09:09
y me pongo a abrir otro 00:09:12
todo lo que yo he editado lo ignora 00:09:13
entonces hombre, pero eso en el menú 00:09:15
abrir puedo decir antes 00:09:18
puedo meter antes el código para hacer una pregunta 00:09:19
¿quiere guardar lo que ya hay? 00:09:22
y darle a guardar este archivo 00:09:24
con el nombre de arriba 00:09:26
antes de abrir lo otro, eso ya 00:09:27
¿vale? porque si no aquí 00:09:28
el de ingresos 00:09:32
la modificación que yo he hecho 00:09:34
no se habrá hecho, de hecho si lo vuelvo a abrir 00:09:35
no se guarda 00:09:37
sin la modificación, lógicamente 00:09:43
vale, pues todo este funcionamiento 00:09:44
del menú está bastante 00:09:47
completo, salvo por eso y salvo por el bloque 00:09:49
infinito de abrir 00:09:51
que está ahí, como yo no le di un archivo que exista 00:09:52
bueno, pues entonces esta tarde 00:09:55
subo esto para quien lo 00:10:02
quiera utilizar, pero la idea es que lo completéis 00:10:04
vosotros y 00:10:06
más que perderos 00:10:08
ahora mucho en las otras opciones 00:10:10
las de utilidades, son rápidas de hacer 00:10:12
sobre todo 00:10:14
quiero que de la otra hoja, esta de aquí 00:10:16
pues os pongáis con estos últimos 00:10:18
estos últimos 00:10:21
si no los habéis hecho 00:10:23
¿vale? que permiten un poco practicar 00:10:24
programación también, clases y todo eso 00:10:27
y ahora lo otro que estabais 00:10:29
hablando, vamos a ver 00:10:31
otras opciones para 00:10:33
capturar 00:10:36
los eventos 00:10:38
o sea, para hacer esta clase 00:10:43
a ver, ¿qué problema 00:10:44
habíamos tenido nosotros 00:10:46
cuando archivo 1, archivo 2 00:10:49
era local 00:10:50
cuando archivo 1, archivo 2 00:10:51
era local, el problema que teníamos 00:10:54
era que no es visible 00:10:56
desde esta clase interna 00:10:58
entonces hemos solucionado que no sea visible 00:10:59
sacándolo fuera 00:11:02
vale 00:11:04
pero si nosotros no queremos sacarlo fuera 00:11:05
vamos a volver a meterlas dentro 00:11:08
bueno no, porque voy a estropear este 00:11:10
tengo la otra clase hecha abajo 00:11:12
vale, vamos a suponer que no queremos 00:11:14
sacarlo afuera por la razón que sea 00:11:16
o que no podemos sacarlo fuera 00:11:18
¿qué solución tenemos? 00:11:19
bueno, pues yo aquí tengo otra clase interna 00:11:22
esta otra de aquí 00:11:24
¿dónde está? 00:11:25
captura menú 2, esta 00:11:39
en captura menú 2 00:11:40
entonces, ¿cuál es aquí el problema? 00:11:43
el problema aquí es que a esta variable yo no puedo acceder 00:11:44
porque es local 00:11:47
a esta variable no puedo acceder, ese es mi problema 00:11:48
que a esta variable no puedo 00:11:51
entonces, ¿qué tengo que hacer? 00:11:52
pues hacerme un constructor 00:11:54
en esta capturadora 00:11:56
un constructor que la reciba 00:11:58
que la reciba 00:12:01
la recibe 00:12:02
y la utiliza para inicializar 00:12:04
una variable de clase 00:12:07
y ahora ya puede acceder aquí 00:12:08
porque está accediendo a la variable de clase 00:12:10
y esta variable de clase 00:12:12
a la que puede acceder 00:12:15
sin ningún problema lógicamente 00:12:16
la ha inicializado con lo que ha recibido 00:12:18
desde aquí 00:12:21
¿vale? 00:12:21
entonces, ahora ¿cuál es la diferencia? 00:12:25
que cuando llamemos a 00:12:27
cuando al ítem 00:12:28
le pasemos el listener 00:12:30
cuando uno hiciera esto 00:12:32
lo pongo en comentarios porque está fuera de 00:12:34
código, claro 00:12:36
si cuando al archivo 1 00:12:37
le añadieramos el addActionListener 00:12:40
le tendríamos que pasar 00:12:42
captura 00:12:50
menú 2 00:12:53
y a captura menú 2 le tengo que pasar 00:12:54
yo el ítem 00:12:56
el ítem con el que 00:12:58
va a inicializar esto para trabajar 00:13:00
es decir, le tendríamos que pasar 00:13:02
esto, esta sería la diferencia 00:13:04
entonces 00:13:11
le pasamos por parámetro archivo 1 00:13:13
que es a la variable a la que quiere acceder, se la pasamos 00:13:15
por parámetro, entonces 00:13:17
captura menú 2, la recoge 00:13:19
y la usa para 00:13:21
inicializar esto, con lo cual 00:13:22
ahora esta y esta 00:13:25
la local del método, esta sería la local del método 00:13:26
que yo le he pasado, pues ahora 00:13:29
la local del método y esta 00:13:31
tienen lo mismo 00:13:33
porque yo esta la he pasado 00:13:34
por parámetro aquí 00:13:37
con lo cual la local del método 00:13:38
y esta tiene lo mismo 00:13:40
entonces ahora ya captura menudos en su acción 00:13:41
performe, ya puede acceder a esta 00:13:44
sin problema, porque es esta 00:13:45
que a su vez es idéntica 00:13:47
a la local del método 00:13:49
lo que pasa es que esto es un rollo 00:13:51
porque tendría que hacerlo con todas 00:13:53
las variables locales 00:13:56
tendría que pasarle todas, es un constructo al que le pasan 00:13:57
muchas cosas, entonces se hace un poco 00:13:59
pesado 00:14:02
claro, yo aquí 00:14:02
he hecho esto solo para ver como se haría 00:14:05
Entonces, archivo 1 lo tiene resuelto, archivo 1 ya la tiene resuelto, pero archivo 2 no la tiene resuelta. Entonces, tendría que pasar, tendría que hacer aquí propiedades para recoger todas las variables locales del constructor y luego pasárselas todas por aquí. 00:14:07
¿eh? y aquí claro 00:14:26
y aquí declararlas también, claro 00:14:32
¿vale? entonces bueno 00:14:34
si tengo muchas 00:14:36
a las que acceder, pasárselas 00:14:38
todas por parámetro, o bueno, puedo hacer algo mucho más 00:14:40
cómodo, que es pasarle el frame 00:14:42
ah no, porque sigue siendo local 00:14:44
entonces el frame no le, nada, no, no 00:14:46
olvídalo, como sigue siendo local 00:14:48
a través del frame no puedes 00:14:49
¿vale? si la variable es local al constructor 00:14:51
claro, pero para 00:14:54
pasar el frame entero 00:14:56
las variables tendrían que ser 00:14:57
propiedades del frame 00:15:00
para luego poder acceder a ellas 00:15:01
pero si son locales al constructor 00:15:02
pasando el frame no arreglo nada 00:15:05
vale, pues venga 00:15:06
Subido por:
Raquel G.
Licencia:
Todos los derechos reservados
Visualizaciones:
11
Fecha:
6 de mayo de 2024 - 19:42
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
15′ 24″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
79.13 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid