0% encontró este documento útil (0 votos)
96 vistas6 páginas

Java FX

JavaFX es un framework de Java para crear interfaces gráficas modernas y potentes, diseñado para reemplazar Swing. Su arquitectura se basa en un Scene Graph y utiliza FXML para separar la lógica del diseño, permitiendo un desarrollo más limpio y mantenible. Además, ofrece características como soporte para CSS, binding de datos y un sistema de manejo de eventos que facilita la interacción con la UI.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
96 vistas6 páginas

Java FX

JavaFX es un framework de Java para crear interfaces gráficas modernas y potentes, diseñado para reemplazar Swing. Su arquitectura se basa en un Scene Graph y utiliza FXML para separar la lógica del diseño, permitiendo un desarrollo más limpio y mantenible. Además, ofrece características como soporte para CSS, binding de datos y un sistema de manejo de eventos que facilita la interacción con la UI.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

📌 Fundamento Profundo de JavaFX

JavaFX es un framework para la construcción de interfaces gráficas (GUI) en Java, diseñado


para reemplazar Swing y proporcionar una alternativa más moderna, flexible y potente.

A continuación, te proporcionaré un fundamento profundo de JavaFX, incluyendo su


arquitectura, ciclo de vida, componentes clave y mejores prácticas.

1️⃣ ¿Qué es JavaFX y por qué usarlo?

JavaFX es un framework basado en Java para la creación de aplicaciones de escritorio, web


embebido y móviles con una interfaz gráfica rica e interactiva.

✅ Características principales:
✔️Interfaz basada en escenas con el patrón Scene Graph.
✔️FXML para separación de lógica y diseño.
✔️Soporte para CSS en la personalización de estilos.
✔️API para gráficos, animaciones y multimedia.
✔️Soporte para binding de datos y programación reactiva.

2️⃣ Arquitectura de JavaFX

🔹 Componentes principales

JavaFX se basa en la arquitectura Scene Graph, compuesta por varios elementos clave:

1. Application → La clase principal que inicia la aplicación.

2. Stage (Escenario) → La ventana principal de la aplicación.

3. Scene (Escena) → Contenedor principal que contiene los nodos gráficos.

4. Nodos (Nodes) → Los componentes gráficos como botones, etiquetas, paneles, etc.

5. Event Handling → Sistema de eventos y acciones.

6. CSS y FXML → Definición de estilos y estructura de la interfaz.

📌 Ejemplo de estructura básica de JavaFX

import [Link];

import [Link];

import [Link];

import [Link];

import [Link];

public class Main extends Application {

@Override
public void start(Stage primaryStage) {

Button btn = new Button("Haz clic");

[Link](e -> [Link]("¡Botón presionado!"));

StackPane root = new StackPane();

[Link]().add(btn);

Scene scene = new Scene(root, 300, 200);

[Link](scene);

[Link]("Hola JavaFX");

[Link]();

public static void main(String[] args) {

launch(args);

✅ Explicación:

 Application: Punto de entrada de la aplicación.

 Stage: Ventana principal de la aplicación.

 Scene: Contiene la estructura de la UI.

 StackPane: Un layout para centrar el botón.

 Button: Componente interactivo.

3️⃣ Ciclo de Vida de una Aplicación JavaFX

Una aplicación JavaFX sigue el siguiente ciclo de vida:

1️⃣ Inicialización (init())

 Se ejecuta antes de que la UI se cree.

 Se usa para cargar recursos, datos o inicializar estados.

2️⃣ Ejecución (start(Stage primaryStage))

 Aquí se define la interfaz gráfica y la lógica de la aplicación.


3️⃣ Finalización (stop())

 Se ejecuta cuando la aplicación se cierra.

 Se usa para liberar recursos, cerrar conexiones, guardar estados.

📌 Ejemplo del ciclo de vida

@Override

public void init() {

[Link]("Inicializando...");

@Override

public void stop() {

[Link]("Finalizando...");

4️⃣ Uso de FXML para Separación de Diseño y Lógica

FXML es un lenguaje basado en XML que permite definir la UI separadamente del código Java.

📌 Ejemplo de archivo [Link]

<?xml version="1.0" encoding="UTF-8"?>

<?import [Link]?>

<?import [Link]?>

<AnchorPane xmlns="[Link]

xmlns:fx="[Link]

fx:controller="[Link]">

<Button text="Haz clic" onAction="#manejarBoton"/>

</AnchorPane>

📌 Controlador [Link]

import [Link];

import [Link];
public class MainController {

@FXML

private Button miBoton;

@FXML

private void manejarBoton() {

[Link]("Botón presionado desde FXML");

✅ Ventajas de FXML:
✔️Separa la vista de la lógica.
✔️Facilita el mantenimiento y reusabilidad.
✔️Compatible con Scene Builder (editor visual para FXML).

5️⃣ Layouts en JavaFX

Los layouts permiten organizar los componentes gráficos dentro de la interfaz.

Layout Descripción

VBox Organiza nodos en columna vertical.

HBox Organiza nodos en fila horizontal.

GridPane Diseño basado en cuadrículas (filas y columnas).

BorderPane Divide en cinco áreas (arriba, abajo, centro, izquierda, derecha).

StackPane Superpone nodos en capas.

AnchorPane Permite posicionamiento absoluto.

📌 Ejemplo: Uso de VBox

VBox vbox = new VBox();

[Link]().addAll(new Button("Botón 1"), new Button("Botón 2"));

6️⃣ CSS en JavaFX

JavaFX permite aplicar CSS para personalizar la apariencia de la UI.

📌 Ejemplo de CSS ([Link])

.button {

-fx-background-color: #3498db;
-fx-text-fill: white;

-fx-font-size: 14px;

📌 Aplicando CSS en JavaFX

[Link]().add(getClass().getResource("[Link]").toExternalForm());

7️⃣ Binding y Programación Reactiva

JavaFX tiene un poderoso sistema de binding, que permite que los cambios en una variable se
reflejen automáticamente en la UI.

📌 Ejemplo de SimpleStringProperty

StringProperty texto = new SimpleStringProperty("Hola");

[Link]((obs, oldValue, newValue) -> [Link]("Nuevo valor: " +


newValue));

[Link]("Nuevo Texto"); // Imprime: Nuevo valor: Nuevo Texto

📌 Ejemplo de binding con un Label

Label label = new Label();

TextField textField = new TextField();

[Link]().bind([Link]());

✅ Ventajas del Binding:


✔️Evita actualizaciones manuales.
✔️Facilita la programación reactiva.

8️⃣ Manejo de Eventos en JavaFX

Los eventos permiten interactuar con los componentes de la UI.

📌 Ejemplo de evento con Button

Button btn = new Button("Click me");

[Link](e -> [Link]("¡Botón presionado!"));

📌 Ejemplo con EventHandler

[Link](new EventHandler<ActionEvent>() {

@Override
public void handle(ActionEvent event) {

[Link]("Botón clickeado");

});

📌 Conclusión

JavaFX es un framework moderno, potente y flexible para el desarrollo de aplicaciones de


escritorio en Java. Con su arquitectura basada en Scene Graph, uso de FXML, CSS, binding y
eventos, permite desarrollar interfaces gráficas avanzadas y escalables.

🚀 ¿Tienes dudas o necesitas ayuda en un caso específico?

También podría gustarte