Saltar navegación

20260420 JavaFX_Calculadora1 - 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 20 de abril de 2026 por Raquel G.

2 visualizaciones

Descargar la transcripción

vale pues este primer ejemplito 00:00:03
lógicamente era muy sencillo porque aquí 00:00:05
es que no teníamos que hacer 00:00:07
ninguna operación 00:00:09
extraña ni hacer nada 00:00:11
entonces no hay más clases que 00:00:12
esta, el controller y se acabó 00:00:15
pero desde el momento en que nuestra 00:00:16
aplicación ya va a hacer un montón de cosas 00:00:19
operar, acceder a no sé qué, leer 00:00:21
un fichero de no sé cuántos 00:00:23
todo eso que se va a hacer en estos 00:00:24
métodos del controller, que se va a hacer 00:00:27
en estos métodos lógicamente porque 00:00:29
todo el back de mi 00:00:31
interfaz va a parar 00:00:33
aquí, todo eso no lo voy a meter ahí 00:00:35
no voy a convertir el controller de repente 00:00:37
en la clase única de mi aplicación que lo tiene 00:00:38
todo, o sea 00:00:41
la lógica de mi aplicación 00:00:43
no debe vivir aquí dentro 00:00:44
ni las propiedades con las que trabaja 00:00:47
si trabaja con un nombre de fichero 00:00:49
si trabaja con no sé qué, o sea no debe 00:00:51
vivir todo aquí dentro mezclado 00:00:53
aquí en este caso es que no hacía nada 00:00:54
trabajar con esta etiqueta 00:00:57
¿Vale? Entonces, desde el momento en que ya 00:00:59
Empezamos a trabajar, la aplicación hace más cosas 00:01:01
Pues ya hay que organizarla de otra manera 00:01:03
El controlador no puede ir engordando y engordando 00:01:05
¿Vale? 00:01:07
Ya tendremos que empezar a crear 00:01:08
Hacer un diseño 00:01:10
Hacer pues las entidades 00:01:13
Con las que trabaja mi aplicación 00:01:15
La clase de gestor de operaciones 00:01:16
Lo que sea, y el control ya irá llamando 00:01:19
A lo que toque, ¿vale? 00:01:21
Entonces, pues 00:01:24
A ver, por ejemplo 00:01:25
Para 00:01:27
Un ejemplito básico 00:01:28
Y luego ya planteamos uno que hagáis vosotros 00:01:32
Que acceda a ficheros 00:01:35
Y así practicáis los ficheros 00:01:36
Pues por ejemplo, sobre este mismo 00:01:38
Que tenía un botón que saludaba 00:01:40
Bueno, este ejemplo lo dejamos así 00:01:42
Y así lo subo así tal cual 00:01:45
Y vamos a hacer otro desde el principio 00:01:46
Que sea una calculadora mínima 00:01:48
¿Vale? Una calculadora mínima 00:01:50
Pero ya tiene que operar 00:01:52
Hacer algunas cosas 00:01:54
Entonces, venga, pues a ver 00:01:55
perdón 00:01:58
R Gómez 4 00:02:02
vale, venga pues vamos a hacer 00:02:06
un proyecto desde el principio 00:02:10
perdón 00:02:11
educa madrid 00:02:13
educa.madrid.org 00:02:16
el mismo que el vuestro 00:02:19
el único correo que podemos usar 00:02:20
sin que nos lleven a la cárcel de la comunidad 00:02:22
de Madrid 00:02:24
tienen una cárcel ahí para la gente que usa 00:02:25
recursos ajenos a la comuna 00:02:29
Duca Madrid 00:02:31
vale, a ver pues venga 00:02:32
nuevo proyecto 00:02:37
vale 00:02:39
para 00:02:41
el próximo día porque 00:02:42
vamos a poner el plugin de Eclipse 00:02:44
pero pasado el examen, para que lo podáis 00:02:49
hacer sin Maven, si a alguien 00:02:51
le gusta más sin Maven 00:02:53
pero por ahora vamos a seguir trabajando 00:02:55
Pues venga, un nuevo proyecto, proyecto sencillito, en mi caso lo añado aquí, venga, mi grupo, pues el dominio, el dominio de mis proyectos, pues el dominio de todas mis aplicaciones, pues es este, perdón, vale, pues luego en el cambio de clase, ala, calculadora mínima, vale, ya está. 00:02:58
Vale, primero, dentro de la lista de ítems, cuidado con la máquina virtual 1.8, no es compatible con la última versión de JavaX, pues lo cambiamos, tanto la máquina virtual con la que vamos a trabajar, como el nivel de compilación que debería ser acorde. 00:03:47
vale 00:04:11
ahora, como es un 00:04:24
proyecto maven 00:04:27
lo primero que abrimos es esto 00:04:28
para configurar el funcionamiento 00:04:30
de la herramienta maven, claro 00:04:33
para quitarle la cosita roja 00:04:35
que podríamos no quitarla y no pasaría nada 00:04:37
pues la S 00:04:39
famosa y ahora 00:04:41
aquí es donde ponemos las librerías de las que 00:04:43
dependemos, los plugins que va a 00:04:45
ejecutar maven si va a ejecutar alguno 00:04:47
etcétera, nuestro caso 00:04:49
son aplicaciones sota, caballo y rey, todas java fx 00:04:51
pues copiamos de otro y ya está 00:04:55
pues copiamos de el último cualquiera que 00:04:58
hayamos hecho, que nos haya funcionado 00:05:03
pues desde el escritorio hacia abajo, las propiedades, las dependencias 00:05:06
y el plugin, vale 00:05:12
guardamos y automáticamente ya 00:05:20
se habrá abierto 00:05:25
la carpetita de 00:05:26
maven dependencia 00:05:29
si es que está ahí 00:05:31
vale, pues ya podemos empezar a hacer la aplicación 00:05:31
pues venga 00:05:37
me hago mi paquete con mi aplicación 00:05:39
es .dam 00:05:49
1.app por ejemplo 00:05:50
este tiene mi main 00:05:53
y ya sabemos que la clase raíz de JavaX hereda extends de application 00:06:12
y al heredar de application pues tiene que implementar este método 00:06:26
y este método es el que construye la vista, asocia los eventos, todo eso 00:06:42
Si lo hacemos con fxml 00:06:46
Pues podemos copiar y pegar 00:06:48
Directamente estas primeras líneas 00:06:50
Todo esto podemos si queremos 00:06:53
Copiamos y pegamos esto 00:06:54
Vale 00:06:58
Aquí yo le cambio el nombrecito 00:07:02
Lógicamente no podemos 00:07:07
Y el main pues es el que tiene 00:07:09
El que lanza la aplicación 00:07:11
Vale 00:07:14
Y aquí no puedo ejecutar esto 00:07:19
Bueno vamos a cambiar el título 00:07:21
Por calculadora 00:07:23
Y aquí no puedo ejecutar la aplicación 00:07:25
Porque lógicamente me falta 00:07:32
El fichero de vista que no he generado 00:07:34
¿Vale? Entonces ya que estamos 00:07:36
Ahora mismo en Eclipse, antes de irnos al Steam Builder 00:07:40
Vamos a hacernos el controlador 00:07:42
Por ahora vacío 00:07:44
Venga 00:07:45
Un pelincito 00:07:46
¿Qué? 00:07:50
¿Qué es lo que nos pregunta? 00:07:51
Dime 00:07:52
¿Que salió a punto de que se viene? 00:07:53
¿Dónde lo va a poner? 00:07:55
contéstate tú a ti mismo 00:07:55
recordando del viernes pasado 00:08:00
claro, no, o sea 00:08:02
lo puedo meter en cualquier sitio 00:08:03
pero entonces tengo que poner aquí la ruta 00:08:05
a la que llegue, entonces como la carpeta 00:08:07
resources está directamente 00:08:10
en el pad de maven 00:08:12
pues la pongo aquí, si la pongo 00:08:13
en recursos, puedo poner la ruta de esta manera 00:08:16
y ya está, con la barrita delante 00:08:18
a mí me va sin poner 00:08:20
la ruta 00:08:22
claro, si tú lo pones 00:08:25
directamente donde está el código fuente 00:08:28
como eso también está en el pad 00:08:30
también te iría, le quitas la barrita y ya está 00:08:32
lo único es que 00:08:34
a ver, la clave es 00:08:35
lo tienes que poner 00:08:38
en un fichero, perdón, en una 00:08:40
ruta que esté en el pad 00:08:42
y si no está en el pad, accesible desde el pad 00:08:44
y poniéndola aquí, ya está 00:08:47
no es que haya lo que pase 00:08:48
si encaja la ruta que tú le has puesto 00:08:49
encaja con la que pones aquí, no hay ningún problema 00:08:52
Ni yo tampoco 00:08:54
¿A qué te refieres con que yo no lo he puesto? 00:09:00
Vale, y luego has puesto 00:09:05
El nombre del fichero aquí 00:09:06
Y yo también, pero claro porque 00:09:08
Resources está metido en el PAD 00:09:10
El PAD es 00:09:12
El conjunto de rutas 00:09:16
Que son accesibles directamente 00:09:18
Vale, entonces no hace falta 00:09:20
No, tiene 00:09:22
Tienes que poner la barrita, eso sí. 00:09:24
La barrita hay que ponerla. 00:09:26
Claro, eso sí, ¿vale? 00:09:27
Vale, sí, es como lo hicimos el otro día. 00:09:30
Vale, entonces, bueno, a esta la voy a cambiar ya de nombre 00:09:32
porque no la voy a llamar saluda. 00:09:34
Cuando la generemos la vamos a llamar, pues, calculadora. 00:09:35
Por ejemplo, calculadora FXML. 00:09:40
La vamos a llamar, ¿vale? 00:09:43
Y, a ver, ya que estamos en Eclipse, 00:09:48
vamos a adelantarnos y vamos a hacer el control, ¿eh? 00:09:51
Vean lo que estábamos, ¿vale? 00:09:54
pues venga 00:09:55
nos hacemos 00:09:57
el paquete con el controller 00:09:58
es .damp1.controller 00:10:01
y ahora aquí vamos a poner 00:10:06
nuestro controlador 00:10:09
vale pues el controlador tendrá 00:10:10
pondremos en él 00:10:22
los controles 00:10:24
los elementos de la vista 00:10:26
los que vaya a acceder 00:10:28
y luego los métodos 00:10:29
con los que vamos a responder 00:10:31
a los eventos 00:10:33
el controller 00:10:34
le podemos poner opcionalmente 00:10:36
un método 00:10:39
inicialice 00:10:40
no sé si lo he escrito bien 00:10:41
a ver si lo he escrito 00:10:47
bien 00:10:52
ah sí, pero tienes razón 00:11:09
vale, vale, sí, sí, sí 00:11:10
sí, no puedo comprobar 00:11:12
pero yo creo que se llama así 00:11:15
vale, entonces, este método 00:11:16
lo puedo poner o no, no es obligatorio 00:11:18
vale, este método 00:11:20
se ejecuta, si está puesto 00:11:22
lo que hay dentro, se ejecuta 00:11:24
conforme se carga 00:11:27
la vista 00:11:29
entonces, por ejemplo, si yo estoy haciendo una aplicación 00:11:29
en la cual me haya puesto unos desplegables 00:11:32
que quiero que aparezcan 00:11:35
para elegir ciudades, las ciudades las tengo 00:11:36
en un fichero, por ejemplo, pues mira 00:11:38
eso lo puedes hacer luego, entonces en un fichero 00:11:40
de texto tienes nombre, y tú quieres que cuando arranque la aplicación 00:11:42
te aparezca en un desplegable 00:11:45
las ciudades que tienes para seleccionarlas 00:11:47
y que te muestre los habitantes de cada ciudad 00:11:49
lo que sea 00:11:51
algo así luego cuando hagamos este ejemplito 00:11:52
lo planteamos así 00:11:55
el evento del desplegable ese 00:11:57
será acceder al fichero 00:11:59
para mirar en la línea de la ciudad 00:12:01
los habitantes que tiene, etc. 00:12:03
y habrá que hacer un initialize 00:12:05
para que cuando arranque la aplicación 00:12:06
se carguen en ese desplegable 00:12:09
los nombres de las ciudades que hay en el fichero 00:12:10
entonces en nuestro caso 00:12:12
para asegurarnos de que funciona 00:12:14
le voy a poner aquí simplemente 00:12:16
una especie de consola 00:12:17
arrancando aplicación 00:12:20
para ver si en la consola 00:12:22
nos aparece que esté arrancando la aplicación 00:12:24
vale 00:12:26
vale, pues entonces, dime 00:12:27
si, pero bueno 00:12:30
puedes no, o sea, se va a ejecutar 00:12:43
aunque no implementes inicializable 00:12:45
¿Vale? O sea, no es obligatorio, simplemente es inicializable 00:12:47
Creo recordar, si no, ahora lo comprobamos 00:12:50
¿Vale? Si no, ¿vale? 00:12:52
Vale 00:13:00
A ver 00:13:00
Ahora ya sí que sí, nos vamos al 00:13:01
Steam Builder 00:13:04
00:13:05
Venga, pues a ver 00:13:12
Aquí 00:13:24
El que uno quiera 00:13:26
Se supone 00:13:29
Que los que ya tienen una distribución 00:13:31
fijada, pues se asocian 00:13:33
a los aspectos habituales de las aplicaciones 00:13:35
que vemos, responden a lo que normalmente 00:13:37
las aplicaciones al final acaban, las interfaces 00:13:39
acaban respondiendo a sota, caballo y rey 00:13:41
pues un menú a la izquierda 00:13:43
con las cositas, luego a la derecha 00:13:46
casi todas acaban siendo iguales 00:13:47
pues los paneles de la izquierda 00:13:49
responden a los aspectos típicos 00:13:51
de las interfaces, entonces pues uno puede seleccionar 00:13:53
uno, pero claro, si seleccionáis uno 00:13:55
que no sea el de ancla 00:13:57
entonces hay que colocar los elementos 00:13:58
respetando esa distribución 00:14:01
a la que te obliga ese panel 00:14:03
vale, ahí a vosotros podéis 00:14:04
probar y lo que sea, pues este es el 00:14:07
típico de rejilla 00:14:09
este es el típico que tiene pues la zona 00:14:10
de ítems aquí, la zona 00:14:13
abajo de no sé qué, pero bueno 00:14:15
vamos a ponerle, yo le voy a 00:14:17
poner este para hacer una calculadora, poner los botones 00:14:19
donde nos dé la gana, vale 00:14:21
que feo el que 00:14:28
vamos a ver, porque sea blanco 00:14:31
es feo, tiene que tener cositas 00:14:37
Venga, pues a ver 00:14:38
La calculadora va a tener 00:14:43
Un área de texto 00:14:45
Para los datos 00:14:46
Pues sale, esto ya es un control 00:14:47
Un text fill 00:14:50
Entonces para meter datos en un área de texto 00:14:52
Pues uno cotillea 00:14:55
Busca y al final deduce 00:14:57
Que el elemento que mejor va a pegar 00:14:58
Es el 00:15:00
Pues buscad como os dé la gana 00:15:01
¿Vale? 00:15:06
Venga, pues ahí tenemos nuestro textfield, nos suena por el nombre a que es para meter datos en área de texto. 00:15:16
Vale, ahora botoncitos. 00:15:23
¿Cómo? 00:15:34
¿Qué era lo de arriba? 00:15:37
Un textfield, un campo de texto para meter datos, números, lo que sea. 00:15:41
entonces vamos a hacer una calculadora 00:15:46
sencillísima 00:15:48
con 00:15:50
la operación sumar 00:15:52
entonces 00:15:55
bueno antes que nada el text fill 00:15:55
el text fill va a necesitar ser accesible 00:15:58
desde java por supuesto porque tengo 00:16:01
que recoger de él el dato que 00:16:03
haya escrito el usuario vamos a ponerle un 00:16:05
nombrecito pues lo seleccionamos 00:16:06
en botón derecho en código 00:16:09
le ponemos el nombrecito 00:16:11
Pues dato 00:16:14
O como lo queramos llamar 00:16:16
Esa variable java 00:16:18
De textfield se va a llamar dato 00:16:21
Estos tres botones van a ser solo 00:16:22
Para recoger el evento 00:16:26
Pues sumar, restar 00:16:27
E igual 00:16:30
Pues entonces no les vamos a dar nombre 00:16:32
Porque no lo tenemos que hacer desde java 00:16:34
Pero a este si que le vamos a poner 00:16:36
En propiedades 00:16:38
Más 00:16:39
Este va a ser más 00:16:42
al text field lo he llamado dato 00:16:43
pero bueno, llámalo tú como quieras 00:16:46
a este botón 00:16:48
vamos a hacer una versión rapidísima y corta 00:16:49
de calculadora para que luego ya podáis 00:16:52
vosotros trabajar 00:16:53
y a este igual 00:16:56
vale 00:16:59
a ver, el texto más 00:17:01
lo vamos a ponerlo 00:17:12
un poco más grande porque si no no se ve nada 00:17:14
así 00:17:16
para mí, pues 00:17:20
Ala, la mía se queda así 00:17:21
Vosotros como sois más 00:17:35
De perder el tiempo 00:17:36
La dejáis más bonito 00:17:40
Si queréis 00:17:42
Vale, pues entonces 00:17:44
Va a haber la respuesta a más 00:17:46
La respuesta a menos 00:17:49
Y la respuesta a igual 00:17:50
Y vamos a tener que indicar 00:17:51
El controller que tiene los métodos 00:17:55
De esas respuestas 00:17:57
Pues venga, el controller lo poníamos aquí 00:17:58
Aquí abajo 00:18:00
Controller 00:18:03
Mi clase controller es 00:18:05
.da1.controller.controller 00:18:06
Creo recordar 00:18:15
Vale 00:18:16
Yo creo que está todo lo necesario 00:18:19
Para hacer el 00:18:21
El fxid 00:18:22
El fxml 00:18:25
Vale 00:18:27
Save as 00:18:30
A ver 00:18:34
00:18:35
Tú lo abres con la 00:18:49
Desde el Eclipse lo puedes abrir con la aplicación que quieras 00:18:56
Lógicamente si lo abres con esa 00:18:58
A ver 00:19:00
Tengo los usuarios. 00:19:03
Vale. 00:19:22
¿Dónde lo tengo? 00:19:36
Ah, aquí está. 00:19:50
Vale. 00:19:52
Vale, pues entonces yo ya lo tengo aquí. 00:19:52
calculadora.fxml vale vamos a refrescar vale y aquí está el controller 00:19:59
bueno pues ya está entonces ahora ya puede empezar a hacer el controller vale aquí 00:20:27
si no pongo 00:20:38
el fxml no va a ser 00:20:41
el initialize del fxml 00:20:42
vale, aquí se me ha olvidado anotarlo 00:20:44
tiene que ser el initialize de java x 00:20:46
vale, que 00:20:48
yo creo que si que va a haber que implementar la interfaz 00:20:50
pero ya lo comprobamos 00:20:52
vale 00:20:53
vale, pues entonces, ahora ya empezamos 00:20:55
a trabajar, ahora ya 00:20:58
la vista ya está completa, ahora hay que empezar 00:21:00
y actuar, pues venga 00:21:02
respuesta al botón 00:21:04
más, respuesta al botón 00:21:06
más 00:21:08
hemos hecho tres botones 00:21:08
vale, pues como va a funcionar nuestra 00:21:19
calculadora, cuando le 00:21:34
demos a sumar, todavía 00:21:36
no pasa nada 00:21:38
pero que tiene que pasar 00:21:40
pues que el dato que hay ahí 00:21:41
tendremos que leerlo, con lo cual 00:21:44
el controlador automáticamente va a necesitar 00:21:46
acceder a este, para leer el dato 00:21:48
vale, pues entonces primera cosa que le podemos 00:21:50
para el controlador, oye tú 00:21:52
controlador voy a necesitar acceder a este 00:21:53
al text 00:21:56
field, dato 00:21:58
¿vale? entonces 00:22:03
¿qué tendremos que hacer cuando demos al botón suma? 00:22:11
pues de dato 00:22:13
leer lo que haya, el numerito que haya 00:22:14
que si 00:22:16
exploramos los métodos suena a que 00:22:19
es getText el que me lo da 00:22:21
pero como me lo dará en string ya sabemos 00:22:22
convertir un string 00:22:25
a entero 00:22:27
así funciona calculador 00:22:27
tú solo tienes una pantalla, entonces 00:22:36
vamos a ir, claro 00:22:38
entonces, ¿qué vamos a hacer 00:22:40
cuando le demos al botón suma? 00:22:42
pues cuando le damos al botón suma, lo único 00:22:44
que podemos hacer en ese momento es 00:22:46
coger ese dato y 00:22:48
guardarlo en algún lado porque va a ser el 00:22:50
primero operando, pero todavía 00:22:52
nada más, es decir, la respuesta al botón 00:22:54
suma será, porque tú haces 00:22:57
3 más 2 00:22:58
igual, entonces 00:23:00
cuando le das al más, lo 00:23:02
único que tienes que hacer es el dato que haya 00:23:04
quedártelo ahí guardado 00:23:07
como primer operando y ya está 00:23:09
todavía no operarás, operarás 00:23:11
cuando le des al igual, entonces 00:23:12
aquí ya nos surge la primera duda es 00:23:14
a ver, este dato que yo cojo aquí 00:23:16
operando 00:23:18
uno 00:23:21
lo tengo que guardar en algún 00:23:21
lado, en algún lado se tiene que quedar ahí guardado 00:23:24
sin perderse, para que cuando 00:23:26
luego nos vayamos al evento 00:23:28
de botón 00:23:30
de botón igual 00:23:31
para que cuando luego nos vayamos al evento 00:23:34
de botón igual 00:23:45
ahora ya 00:23:46
desde botón igual 00:23:50
habrá que hacer una suma con 00:23:52
el operando que hay en ese momento 00:23:54
más este otro que hemos cogido 00:23:56
previamente, luego aquí se nos 00:23:58
presenta ya un primer problema 00:24:00
pequeñito, pero un primer problema de diseño 00:24:02
que es, este dato que he leído 00:24:04
aquí en botón suma 00:24:06
¿cómo me las apaño para que se quede guardado 00:24:07
en algún sitio y que no se 00:24:10
pierda, porque luego lo tiene que usar 00:24:12
este método botón igual, cuando yo 00:24:14
de a botón igual, como me las apaño 00:24:16
que es la primera opción que nos sale 00:24:17
claro, la solución 00:24:20
natural que nos sale es 00:24:33
variable de la clase 00:24:34
operando uno 00:24:36
entonces 00:24:38
esta es la solución natural, verdad 00:24:39
operando uno 00:24:42
la primera que nos sale 00:24:44
Pero claro, aquí ya estamos empezando a meterle basurilla al controller, estamos empezando a convertir al controller en algo que no es. Operando uno es una característica del objeto, entre comillas, del objeto cálculo, del calculador, del que sea. 00:24:48
¿Vale? Entonces ya estamos 00:25:06
Dándole al controller 00:25:08
Propiedades 00:25:10
Que no lo caracterizan por diseño 00:25:11
Al controller lo caracterizan 00:25:14
Si los controles 00:25:16
A los que accede la interfaz 00:25:18
Los controles sí, lo que usa 00:25:20
Pero si ya le empezamos a meter basura 00:25:22
Estamos mezclando toda la lógica 00:25:24
De la aplicación, con todas las entidades 00:25:26
Con todo el modelo, con todo 00:25:28
¿Vale? Pero como aquí son 00:25:30
Dos propiedades, vamos a 00:25:32
ponerlo aquí y luego ya lo sacamos 00:25:34
fuera, es solamente como pautas 00:25:36
de diseño que os doy, vamos a suponer que lo sacamos 00:25:38
aquí, pues la solución 00:25:40
una solución tenemos, que es sacarlo aquí 00:25:42
pero repito, estamos 00:25:44
manchándole a este, porque le estamos 00:25:46
empezando a caracterizar con 00:25:48
cosas que en realidad no le caracterizan, al control 00:25:50
lo caracteriza operando uno, operando uno 00:25:52
será en todo caso una característica de una 00:25:54
entidad que yo debería haber diseñado 00:25:56
previamente, antes de empezar a programar 00:25:58
que es la entidad calculadora 00:26:00
pero bueno, venga 00:26:02
operando uno, ahora el botón igual 00:26:04
el botón igual que tiene que hacer 00:26:06
pues cogerse lo que hay en ese 00:26:08
momento en 00:26:10
el área de texto 00:26:12
vamos a 00:26:14
después de darle a sumar vamos a poner el área de 00:26:22
el área de texto a 00:26:25
cero, vacía 00:26:27
para que el usuario no tenga que borrarlo 00:26:28
para meter el segundo operando 00:26:31
entonces el área de texto como se llama 00:26:32
dato 00:26:35
dato no si tiene un clear, ponerle un 00:26:35
set test a 00:26:39
sí, tiene un clear 00:26:40
vale, y ahora 00:26:42
en botón igual, vamos a coger 00:26:45
ahora ya vamos a fijar 00:26:47
el área de texto 00:26:49
en dato.sectest 00:26:50
que le vamos a poner 00:26:54
el operando 1 más 00:26:55
lo que haya 00:27:00
en ese momento en el área de texto 00:27:01
que será esto otra vez 00:27:03
vale 00:27:06
el operando 1 00:27:12
sumado a lo que haya en el área 00:27:14
de texto y convertido a string 00:27:17
claro, convertirlo a string es tan fácil 00:27:19
como concatenarlo con esto 00:27:21
entonces no haría nada la interfaz 00:27:22
porque no tengo el evento botón menos 00:27:31
ahora tengo que asociar cada 00:27:33
ahora tengo que asociar cada 00:27:35
método al botón 00:27:37
bueno 00:27:40
bueno 00:27:40
el onclick de 00:27:43
no, todavía no está puesto ninguno 00:27:47
los tenemos que poner, vale 00:27:50
los tenemos que asociar, vale 00:27:51
entonces, donde estamos 00:27:54
aquí 00:27:55
entonces, esta va a ser la respuesta a botón 00:27:56
suma, que es coger el dato y 00:28:00
ponerlo aquí, y esta va a ser 00:28:02
la respuesta a botón igual, que es 00:28:04
al dato que teníamos de antes 00:28:06
le sumamos 00:28:08
el dato nuevo que está en la interfaz 00:28:10
y lo ponemos en la 00:28:12
en el área de texto 00:28:14
entonces lo he convertido a string con esto 00:28:15
cuidado lógicamente si ponéis 00:28:18
ese espacio 00:28:20
en medio la suma se perdería 00:28:22
porque esto se va diciendo 00:28:24
de izquierda a derecha 00:28:26
al tener un entero más un entero 00:28:27
esto interpreta suma entera 00:28:29
suma correcta y luego ya lo podemos convertir 00:28:31
a string concatenando con esto 00:28:34
o como string value of o como os dé la gana 00:28:36
vale 00:28:38
bueno pues ahora lo único que nos falta 00:28:39
es decirle a esta 00:28:42
A la interfaz 00:28:44
Que el onAction de más es botón suma 00:28:46
Y el onAction de igual 00:28:49
Es botón igual 00:28:50
De hecho es que no tendríamos ni que hacerlo aquí 00:28:52
Es que nos vamos aquí al fxml 00:28:56
Que a veces que parecemos tontos 00:28:58
Le ponemos el onAction y se acabó 00:28:59
A ver donde tengo el 00:29:02
Botón suma es este primero 00:29:12
Text suma 00:29:15
Y le voy a poner un 00:29:16
onAction 00:29:18
igual 00:29:20
uff, que he hecho 00:29:23
un onAction 00:29:25
igual 00:29:27
almohadilla 00:29:29
botón suma, creo que se llamaba 00:29:32
el método 00:29:35
no he dicho que sea mejor 00:29:36
he dicho que no tenemos por qué tocarlo 00:29:47
porque nos lo genera todo 00:29:49
pero, a ver, lo que tenemos es 00:29:50
también que intentar no volvernos tontos 00:29:53
entonces ya sabemos que ponerle un evento es 00:29:55
añadirle el componente 00:29:57
onAction 00:29:59
¿verdad? entonces 00:30:00
si miro yo en mi otro vista para 00:30:03
button 00:30:05
onAction 00:30:07
esto mismo ¿no? 00:30:09
onAction saluda 00:30:12
pues ya está, lo pongo a mano y ya está 00:30:13
es que irme al Steam Builder 00:30:15
solamente para eso 00:30:17
espera un momento que lo escriba bien 00:30:18
porque no lo tengo bien escrito 00:30:21
Me falta esta comilla de aquí 00:30:23
Vale 00:30:25
Ahora ya lo tengo 00:30:27
El on action 00:30:29
Botón suma, un segundito 00:30:30
Y voy a ponerle el on action de 00:30:32
Del 00:30:34
Del botón igual 00:30:37
Que es este 00:30:41
Botón igual 00:30:43
Y eso sí 00:30:45
Me falta también el controller 00:30:51
En el fxml el controller 00:30:54
Lo puedo poner en el Steam Builder 00:30:56
O añadirlo yo directamente a mano 00:30:58
Porque tampoco somos tan tontos 00:31:02
No lo sé, ahora voy a mirar 00:31:04
Aquí me falta esto 00:31:14
Me falta eso 00:31:16
Porque el botón 00:31:18
Ah, sí, sí tiene etiqueta de cierre 00:31:19
Entonces eso va ahí 00:31:20
Y entonces aquí también me sobra esta 00:31:22
Vale, porque tiene etiqueta de cierre 00:31:25
El botón, ¿no? 00:31:27
00:31:28
Que me sobra un 00:31:30
En el button 00:31:33
Ah, este, este, vale 00:31:35
Vale 00:31:38
Pero me falta ponerle el controller 00:31:41
Vale 00:31:44
Que lo puedo poner en el Steam Builder 00:31:46
Pero es que ya hemos comprobado antes que el Steam Builder 00:31:48
Lo único que hace es añadirme esta línea 00:31:50
Ah, bueno, que no, ya se lo puse 00:31:51
Ya se lo puse en la vista 00:31:54
La tengo aquí 00:31:55
Lo tengo aquí, ya se lo puse en la vista 00:31:57
Vale, pues entonces la vista tiene el controller que estoy usando, el onAction del botón suma y el onAction del botón igual y esos están aquí anotados con su fxml, botón suma, botón igual, el initialize que está por ver que funcione si no implementa initializable, pero eso ahora lo comprobamos. 00:32:01
Y yo creo que está todo 00:32:28
¿Vale? Creo que está todo 00:32:30
Y si no lo está, pues ahora habrá que arreglarlo 00:32:33
Venga 00:32:35
Ahora 00:32:37
Esto no lo ejecutamos 00:32:39
Como aplicación de Java, como bien sabéis 00:32:42
Si no 00:32:44
A quien llamamos es a Maven 00:32:45
Le decimos, oye tú Maven, lánzate 00:32:47
Ya, y Maven te dice 00:32:49
Sí, ya, pero ¿qué hago? 00:32:51
Porque puedo hacer muchas cosas 00:32:53
Pues oye, ejecuta el plugin de JavaFX 00:32:54
Que te he configurado en el POM 00:32:57
Y ese plugin de JavaFX 00:32:58
Que te he configurado en el POM 00:33:01
En particular hace el RUN 00:33:02
Que es ejecutar 00:33:05
Vamos a ver si tenemos suerte 00:33:06
Vale, no tenemos suerte 00:33:08
Ah, porque no he cambiado 00:33:14
En el POM la clase 00:33:18
¿Vale? Acordaos de esto 00:33:19
La clase del plugin 00:33:21
¿Vale? La clase del plugin 00:33:23
Se llama calculadora 00:33:26
¿Cómo la sabía? 00:33:27
Porque me lo ha dicho 00:33:29
No puedo encontrar 00:33:30
App primera ventana 00:33:34
Ver la traza de error es básico 00:33:36
Si no, no tienes de dónde partir 00:33:38
Vale, entonces 00:33:40
Por ahora es ese error, vamos a ver si hay otro 00:33:42
Calculadora 00:33:44
Calculadora 00:33:45
Calculadora, vale 00:33:47
Siguiente intento 00:33:50
Calculadora 00:33:52
Vale, a ver, otro fallo 00:33:57
No puedo encontrar 00:34:04
Ah, es que has dado otra vez 00:34:11
Es que no se llama calculadora 00:34:13
Ah, es que se llama app, jolín, parezco tonta 00:34:14
Vale, vale 00:34:17
Se llama app 00:34:18
Entonces 00:34:20
App 00:34:21
Siguiente intento 00:34:23
Vale, efectivamente no hace falta 00:34:40
Que implemente initialize 00:34:42
¿Vale? Es que yo recordaba 00:34:43
Que yo nunca lo había implementado 00:34:46
Pero vamos, puede que para otras cosas 00:34:47
Si haga falta, eso ya no lo sé 00:34:49
¿Vale? 00:34:51
No, que no hace, no, no, no 00:34:53
Que para que JavaFX 00:34:54
Interprete este método 00:34:57
Como el método que tiene que arrancar 00:34:59
Cuando se monta la aplicación 00:35:01
Solo es necesario que se anote con fxml 00:35:02
No hace falta que haga 00:35:05
Aquí un implement de algo 00:35:07
Que era la duda que tenía Jesús 00:35:08
¿Vale? Entonces 00:35:11
Mi calculadora es esta 00:35:12
Vamos a ver 00:35:15
Uy, teníamos que haberlo fijado en la izquierda 00:35:15
A la derecha, porque la izquierda queda muy feo 00:35:19
Mi código, ¿dónde? 00:35:20
¿Qué parte? 00:35:25
No, solamente para comprobar 00:35:27
Que este método se ejecuta al arrancar 00:35:34
Que lo habéis anotado, ¿verdad? 00:35:36
No se os ha olvidado 00:35:41
Y no se os ejecuta 00:35:41
Arrancando aplicación 00:35:45
Ahora lo miramos 00:35:47
Voy a ver yo si el código que hemos hecho tiene sentido 00:35:48
236 más 00:35:51
¿Veis? Me lo deja limpio, que es muy bonito 00:35:52
123 00:35:54
Igual a 159 00:35:56
¿Vale? Muy bonita 00:35:58
2,59 más 12 00:35:59
Igual a 371 00:36:02
¿Vale? 00:36:04
Pues muy bien 00:36:06
¿Os salen cosas raras? 00:36:07
¿Problemas? ¿Errores? 00:36:11
¿Cómo que todito? 00:36:13
No puede ser 00:36:14
A ver, vamos a 00:36:15
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:
2
Fecha:
20 de abril de 2026 - 12:28
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
36′ 21″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
158.94 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid