Saltar al contenido principal

Setup and Configuration

Abrir en ChatGPT

Integrar Webswing con webforJ implica dos componentes: el servidor Webswing que aloja tu aplicación Swing y el componente WebswingConnector en tu aplicación webforJ que lo incrusta.

Prerequisitos

Antes de comenzar, asegúrate de tener los siguientes prerrequisitos:

  • Aplicación de escritorio Java: una aplicación Swing, JavaFX o SWT empaquetada como un archivo JAR
  • Servidor Webswing: descargar desde webswing.org
  • Versión webforJ 25.10 o posterior: necesaria para el soporte de WebswingConnector

Visión general de la arquitectura

La arquitectura de integración consiste en:

  1. Servidor Webswing: ejecuta tu aplicación Swing, captura el renderizado de la GUI y maneja la entrada del usuario
  2. Aplicación webforJ: aloja tu aplicación web con el WebswingConnector incrustado
  3. Cliente del navegador: muestra tanto la interfaz de usuario de webforJ como la aplicación Swing incrustada
Configuración del puerto

Webswing y webforJ deben ejecutarse en puertos diferentes para evitar conflictos. Tanto webforJ como Webswing normalmente se ejecutan en el puerto 8080. Debes cambiar el puerto de Webswing o el puerto de webforJ.

Configuración del servidor Webswing

Instalación y arranque

  1. Descargar Webswing desde la página oficial
  2. Extraer el archivo en tu ubicación preferida (por ejemplo, /opt/webswing o C:\webswing)
  3. Iniciar el servidor utilizando los scripts específicos de la plataforma:
webswing.sh
  1. Verificar que el servidor está en funcionamiento accediendo a http://localhost:8080

Configuración de la aplicación

Una vez que el servidor está en funcionamiento, accede a la consola de administración en http://localhost:8080/admin para agregar y configurar tu aplicación Swing.

En la consola de administración, configura:

  • Nombre de la aplicación: se convierte en parte de la ruta de la URL (por ejemplo, miapphttp://localhost:8080/miapp/)
  • Clase principal: el punto de entrada de tu aplicación Swing
  • Classpath: ruta a tu archivo JAR de la aplicación y dependencias
  • Argumentos de JVM: configuraciones de memoria, propiedades del sistema y otras opciones de JVM
  • Directorio de inicio: directorio de trabajo para la aplicación

Después de la configuración, tu aplicación Swing estará accesible en http://localhost:8080/[nombre-de-la-aplicación]/

Configuración de CORS

Al incrustar Webswing en una aplicación webforJ que se ejecuta en un puerto o dominio diferente, debes configurar el Compartición de Recursos de Origen Cruzado (CORS) en Webswing. Esto permite que el navegador cargue contenido de Webswing desde dentro de tu página webforJ.

En la consola de administración de Webswing, navega a la configuración de tu aplicación y establece:

  • Orígenes permitidos: Agrega el origen de tu aplicación webforJ (por ejemplo, http://localhost:8090 o * para desarrollo)

Esta configuración corresponde a la opción allowedCorsOrigins en la configuración de la aplicación de Webswing.

Integración con webforJ

Una vez que tu servidor Webswing esté en funcionamiento con tu aplicación Swing configurada y CORS habilitado, puedes integrarlo en tu aplicación webforJ.

Agregar dependencia

La integración de Webswing depende del módulo de integración de Webswing de webforJ, que proporciona el componente WebswingConnector y clases relacionadas. Agrega lo siguiente a tu archivo pom.xml:

<dependency>
<groupId>com.webforj</groupId>
<artifactId>webforj-webswing</artifactId>
<version>${webforj.version}</version>
</dependency>

Implementación básica

Crea una vista que incruste tu aplicación Swing utilizando el WebswingConnector:

SwingAppView.java
package com.example.views;

import com.webforj.annotation.Route;
import com.webforj.component.Composite;
import com.webforj.component.html.elements.Div;
import com.webforj.component.webswing.WebswingConnector;

@Route
public class SwingAppView extends Composite<Div> {
private final Div self = getBoundComponent();
private WebswingConnector connector;

public SwingAppView() {
// Inicializa el conector con la URL de tu aplicación Webswing
connector = new WebswingConnector("http://localhost:8080/miapp/");

// Establece las dimensiones de visualización
connector.setSize("100%", "600px");

// Agrega al contenedor de la vista
self.add(connector);
}
}

El conector establece automáticamente una conexión con el servidor Webswing cuando se agrega al DOM. La interfaz de usuario de la aplicación Swing se renderiza dentro del componente del conector.

Opciones de configuración

La clase WebswingOptions te permite personalizar el comportamiento del conector. De manera predeterminada, el conector se inicia automáticamente cuando se crea y utiliza configuraciones de conexión estándar. Puedes modificar este comportamiento creando una instancia de WebswingOptions y aplicándola al conector.

Por ejemplo, para ocultar el botón de cierre de sesión en un entorno de producción donde gestionas la autenticación a través de tu aplicación webforJ:

WebswingConnector connector = new WebswingConnector("http://localhost:8080/miapp/");

WebswingOptions options = new WebswingOptions()
.setDisableLogout(true); // Oculta el botón de cierre de sesión

connector.setOptions(options);

O si necesitas control manual sobre cuándo comienza la conexión:

// Crear conector sin auto-inicio
WebswingConnector connector = new WebswingConnector(url, false);

// Configurar e iniciar cuando esté listo
WebswingOptions options = new WebswingOptions();
connector.setOptions(options);
connector.start();

Las opciones cubren la gestión de conexiones, autenticación, depuración y monitoreo.