Saltar navegación

20250320 JavaFX_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 21 de marzo de 2025 por Raquel G.

9 visualizaciones

Descargar la transcripción

Bueno, lo último en lo que nos habíamos quedado es que el controlador tiene que saber, esta etiqueta saludo sobre la que va a actuar, tiene que saber de dónde sale, si es una local que hemos creado aquí, con lo cual no serviría para nada, o si es una etiqueta que está en la vista. 00:00:00
Pues sí, es una que está en la vista 00:00:18
Y para eso te aviso poniéndote esta anotación 00:00:19
Vale 00:00:22
Si ejecutamos esto 00:00:23
Nos va a seguir todavía sin funcionar 00:00:26
Porque ya sé que nos falta lo ultimito 00:00:27
¿Vale? 00:00:30
Si ejecutamos esto nos va a seguir sin funcionar 00:00:31
Y nos sigue diciendo 00:00:34
Que 00:00:38
Oye, que no me has especificado el controlador 00:00:39
Claro 00:00:42
Es que la vista 00:00:43
FXML 00:00:44
La vista, la que tiene los componentes 00:00:46
que reciben el evento, la vista 00:00:49
tiene que tener especificado cuál es 00:00:51
la clase controlador, nada más, es lo único que nos 00:00:53
falta, entonces en este ficherito 00:00:55
de aquí, en este 00:00:57
fichero de vista saludar 00:01:01
el componente 00:01:03
que reciba eventos 00:01:05
él o los componentes que 00:01:07
reciban eventos, hay que asociarles 00:01:09
a su controlador 00:01:11
es como cuando hacíamos en swing 00:01:12
un botón y queríamos asociar 00:01:15
el botón a un listener 00:01:17
lo hacíamos con el addActionListener 00:01:18
aquí no lo hacemos por código 00:01:21
afortunadamente lo hacemos separado 00:01:23
entonces el equivalente 00:01:25
a asociar el controlador al botón 00:01:27
el equivalente al addActionListener 00:01:29
del swing es aquí ponerle 00:01:31
en el fxml una propiedad 00:01:33
controller 00:01:36
que la podemos poner 00:01:37
para no equivocarnos en la sintaxis 00:01:39
desde el builder también 00:01:41
entonces 00:01:42
aquí en el builder 00:01:44
si os fijáis 00:01:46
en el builder, perdón, si en el builder 00:01:49
en el builder, si os fijáis 00:01:51
hay aquí a la izquierda 00:01:53
una pestañita que pone 00:01:55
controlador, ¿vale? 00:01:57
para que pongamos la clase 00:01:59
controladora 00:02:01
pues venga, vamos a poner nuestra clase 00:02:02
controladora, nuestra clase controladora 00:02:05
se llama controller 00:02:07
pues venga 00:02:09
vamos a poner ahí mi clase 00:02:11
controladora 00:02:13
se llama 00:02:14
controller 00:02:16
y guardamos 00:02:17
vale 00:02:22
así se llama mi clase controladora 00:02:24
entonces 00:02:26
yo ahora estoy cuidado en el escritorio 00:02:28
guardando, no estoy abriendo 00:02:30
directamente desde 00:02:32
es esta sobre la que he hecho la modificación 00:02:33
entonces voy a 00:02:36
copiarla en el otro sitio 00:02:38
pero bueno, lo ideal sería abrirla directamente 00:02:40
desde la ubicación del proyecto, claro 00:02:42
vale, pues venga, la voy a 00:02:43
volver a pegar aquí la que he 00:02:48
modificado 00:02:50
y si la abrimos 00:02:51
efectivamente veis que ha añadido 00:02:54
aquí una propiedad 00:02:56
esta 00:02:58
tampoco era tan complicado, la podríamos 00:02:59
haber añadido a mano 00:03:02
el controlador es la clase controller 00:03:03
es lo que acaba de añadir 00:03:06
el controlador 00:03:09
es la clase controller 00:03:10
vale, pues ya creo 00:03:11
que nos falta todo, cualquier error 00:03:14
que surja a partir de ahora es no controlado 00:03:16
vamos a 00:03:18
sí, va, mañana viernes 00:03:20
vale 00:03:21
vamos a volver a arrancarla 00:03:23
vale 00:03:26
sí, a mí tampoco 00:03:30
es que me faltará el punto 00:03:32
class yo creo 00:03:40
porque la clase, sí, será que me falta el punto 00:03:40
class porque control está bien puesto 00:03:44
será que me falta el punto 00:03:45
class, verdad que sí 00:03:48
vamos a ponerse, vamos a ver 00:03:49
a ver si es eso 00:03:51
porque el error que ha sido 00:03:58
no puedo encontrarte la clase controller 00:04:00
ese ha sido el error que me ha dado 00:04:02
vale, vamos a volver a 00:04:04
ejecutar la buena que es esta 00:04:07
pero bueno, ¿qué pasa aquí? 00:04:08
¿qué me falta? 00:04:15
main start 00:04:22
no encuentro 00:04:23
controller.class 00:04:27
vale, identificado porque no encuentra la clase 00:04:28
pues lógicamente no encuentra la clase porque 00:04:36
aquí en la vista de saludar 00:04:39
aquí cuando yo le he dicho el controller 00:04:43
aquí el nombre de la clase se lo he puesto mal 00:04:47
no es controller, el nombre de la clase lógicamente es 00:04:54
application.controller, ese si es el nombre de la clase 00:04:58
vale, este sí que es el nombre 00:05:03
las clases tienen un nombre 00:05:09
que incluye su ruta de paquetes 00:05:11
vale, y aparte 00:05:15
aunque hubiera hecho esto bien 00:05:17
luego no me habría funcionado 00:05:19
porque se me había olvidado esto 00:05:21
pero esto ya lo he visto, ya lo hemos incorporado 00:05:23
y ya está 00:05:25
ahora salvo, por si hay que poner el class o no, que no recuerdo muy bien 00:05:26
en principio yo creo que 00:05:29
debería funcionar 00:05:31
sí, ya sí que funciona 00:05:33
entonces ahora ya la comodidad 00:05:39
cualquier cosa que queramos cambiar 00:05:42
en la vista, en el fxml 00:05:44
que quiero añadir otro componente con otro 00:05:46
evento, pues no pasa nada 00:05:48
añado el 00:05:50
evento aquí en el control, añado el método 00:05:51
aquí en el controller 00:05:54
en la vista 00:05:55
¿vale? le añado al componente 00:05:57
que sea su onAction 00:06:00
y ya está 00:06:02
entonces la estructura es 00:06:03
mi fxml 00:06:05
que tiene los componentes 00:06:07
si alguno de ellos tiene respuesta a evento 00:06:09
tendrá un onAction 00:06:12
un onAction con el método correspondiente 00:06:13
ese método estará 00:06:16
en el controlador 00:06:18
en el, perdón 00:06:19
ese método estará en la clase controlador 00:06:21
¿vale? 00:06:23
luego, esta clase controladora 00:06:26
todos los componentes a los que haga referencia 00:06:27
que sean de la vista las anotamos con fxml 00:06:30
al igual que los métodos 00:06:32
y ya está, y no hay nada más que hacer 00:06:33
¿En todas las anotaciones no puedo meter varios? 00:06:36
¿Tengo que poner cada uno? 00:06:38
Sí, sí, sí. Cada componente y cada miembro 00:06:40
si lleva una anotación, tiene que tener 00:06:42
su propia anotación. 00:06:44
Si yo aquí pusiera otro componente, 00:06:46
esta anotación solo 00:06:48
hace referencia a lo que tenga inmediatamente 00:06:50
después. No se pueden abrir. 00:06:52
Vale, entonces aquí que le queremos 00:06:55
cambiar, por ejemplo, le voy a poner 00:06:56
la hoja de estilo 00:06:58
de este otro proyecto, que sí que tiene 00:06:59
cosas. 00:07:02
Esta hoja de estilo. 00:07:04
porque quiero cambiar el aspecto de mi botón 00:07:05
pues voy a cambiar 00:07:08
esta hoja de estilo 00:07:10
y se la voy a poner aquí 00:07:11
esta hoja de estilo 00:07:14
pues tiene aquí un montón de cosas 00:07:17
el botón, los colorcitos de los botones 00:07:19
todo eso 00:07:22
aquí es como el nombre que recibe de la clase 00:07:24
pero bueno 00:07:30
todo esto siempre es 00:07:31
estas cositas ya sí que es algo que uno consulta 00:07:32
porque no se puede sacar de memoria 00:07:35
y aquí en el main 00:07:36
entonces vamos a decirle 00:07:40
que la hoja de estilo 00:07:43
que tiene que cargar, que no sea esta 00:07:44
sino que sea esta 00:07:46
en minúscula 00:07:48
y ahora ya, habiendo cargado 00:07:51
la hoja de estilo, cambia todo, no tenemos que hacer ningún 00:07:52
cambio en el código, si volvemos a ejecutar 00:07:54
esto, pues el botón 00:07:57
le ha cambiado el estilo 00:07:58
¿vale? sin cambios en código 00:07:59
sin recopilaciones y sin nada 00:08:02
entonces 00:08:04
pues por ejemplo 00:08:06
este proyecto es un proyecto chorra 00:08:08
que se hace en nada 00:08:10
este de aquí y tiene un aspecto 00:08:11
mucho más agradable 00:08:14
este de aquí 00:08:15
este sin hacer prácticamente 00:08:17
nada, pues como veis tiene otro 00:08:23
aspecto, aquí yo 00:08:26
voy agregando tareas, por ejemplo 00:08:28
este aspecto tan bonito 00:08:29
este es un elemento para colocar 00:08:30
componentes y él ya te lo pone de esta manera 00:08:33
Venga, vamos a agregar otra tarea 00:08:35
Pues esta, eliminar tarea 00:08:37
¿Vale? 00:08:39
Esto es mucho más sencillo y más corto de hacer 00:08:41
Con JavaFX que con Swim 00:08:43
Y más 00:08:45
Y más visible 00:08:46
Esto en el Steam Builder 00:08:48
Pues habría sido 00:08:52
Esta vista de aquí 00:08:53
En mi Steam Builder creo que es 00:08:54
Esta 00:08:59
Por ejemplo, ¿veis? 00:09:01
Esta es la vista de este proyecto 00:09:03
Que os he enseñado 00:09:05
Que no tiene tantos componentes 00:09:06
Tiene solamente estos de aquí 00:09:08
Entonces es una vista muy fácil de hacer 00:09:09
Controlador 00:09:12
Pues el main controller 00:09:14
Con un par de métodos 00:09:15
Y ya está 00:09:17
Y queda una aplicación 00:09:18
Pues mucho mejor 00:09:22
Más a lo que estamos acostumbrados 00:09:24
Que lo que podemos hacer 00:09:27
Por ejemplo 00:09:29
Esta de aquí 00:09:30
Creo que es esta 00:09:31
Esto así 00:09:33
esto, pues esto en swing 00:09:41
no es tan fácil, incorporar 00:09:45
este elemento que sea así de visible 00:09:48
que quede, pues aquí 00:09:50
metes el componente 3D en el escenario 00:09:51
y ya está, luego ya 00:09:54
claro, tienes que saber programar 00:09:56
y aquí para saber programar 00:09:57
pues en este por ejemplo 00:10:00
el componente que yo he metido 00:10:02
aquí 00:10:04
en la vista 00:10:04
es solo esto, una caja 00:10:07
he metido una caja 00:10:10
he metido una caja 00:10:11
y ahora tenemos que programar el movimiento 00:10:13
bueno, pues el 00:10:15
¿vale? 00:10:18
aquí está metida la caja 00:10:19
con las propiedades 00:10:21
y aquí el controlador 00:10:24
le cambia las coordenadas 00:10:28
y ya está, y un bucle infinito 00:10:29
en el que está todo el rato girando, un bucle infinito 00:10:31
¿vale? en función de que quiero que vaya más rápido 00:10:33
pues que se cambie de coordenadas más rápido 00:10:37
siempre hay que saber programar 00:10:40
no hay 00:10:42
Ah, no, es que como he quitado el hilo 00:10:42
Vale, esto estaba en el hilo 00:10:58
He quitado el hilo para que no tuviera hilos 00:10:59
Bueno, conclusión 00:11:00
Hacer cualquier aplicación gráfica 00:11:04
Con esta herramienta es más sencillo 00:11:07
Y más vistoso, pero desde luego 00:11:09
La parte del programa no la podéis olvidar 00:11:10
Porque tenéis que meter en el controlador 00:11:12
Todo lo que es el grueso de la aplicación 00:11:13
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:
9
Fecha:
21 de marzo de 2025 - 10:57
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
11′ 18″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
62.58 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid