Setup and Configuration
Integratie van Webswing met webforJ omvat twee componenten: de Webswing-server die jouw Swing-app host, en de WebswingConnector component in jouw webforJ-app die deze embed.
Vereisten
Voordat je begint, zorg ervoor dat je aan de volgende vereisten voldoet:
- Java desktop app: een Swing, JavaFX, of SWT-app verpakt als een JAR-bestand
- Webswing-server: te downloaden van webswing.org
- webforJ versie
25.10of later: vereist voor ondersteuning vanWebswingConnector
Architectuur overzicht
De integratiearchitectuur bestaat uit:
- Webswing Server: draait jouw Swing-app, vangt de GUI-rendering en verwerkt gebruikersinvoer
- webforJ Toepassing: host jouw webapp met de ingebedde
WebswingConnector - Browser Client: toont zowel de webforJ UI als de ingebedde Swing-app
Webswing en webforJ moeten op verschillende poorten draaien om conflicten te vermijden. Zowel webforJ als Webswing draaien doorgaans op poort 8080. Je moet ofwel de Webswing-poort of de webforJ-poort wijzigen.
Webswing server setup
Installatie en opstarten
- Download Webswing van de officiële website
- Pak het archief uit naar jouw voorkeurss locatie (bijv.
/opt/webswingofC:\webswing) - Start de server met de platform-specifieke scripts:
- Linux
- macOS
- Windows
webswing.sh
webswing.command
webswing.bat
- Controleer of de server draait door
http://localhost:8080te openen
Toepassingsconfiguratie
Zodra de server draait, krijg toegang tot de adminconsole op http://localhost:8080/admin om jouw Swing-app toe te voegen en te configureren.
Configureer in de adminconsole:
- Toepassingsnaam: wordt onderdeel van het URL-pad (bijv.
myapp→http://localhost:8080/myapp/) - Hoofdklasse: het toegangspunt van jouw Swing-app
- Classpath: pad naar jouw app JAR en afhankelijkheden
- JVM-argumenten: geheugeninstellingen, systeemproperties, en andere JVM-opties
- Thuisdirectory: werkdirectory voor de app
Na de configuratie is jouw Swing-app toegankelijk op http://localhost:8080/[app-name]/
CORS-configuratie
Bij het embedden van Webswing in een webforJ-app die op een andere poort of domein draait, moet je Cross-Origin Resource Sharing (CORS) configureren in Webswing. Dit stelt de browser in staat om Webswing-inhoud te laden vanuit jouw webforJ-pagina.
Navigeer in de Webswing adminconsole naar de configuratie van jouw app en stel in:
- Toegestane Oorsprongen: Voeg de oorsprong van jouw webforJ-app toe (bijv.
http://localhost:8090of*voor ontwikkeling)
Deze instelling komt overeen met de optie allowedCorsOrigins in de configuratie van de Webswing-app.
webforJ integratie
Zodra jouw Webswing-server draait met jouw Swing-app geconfigureerd en CORS ingeschakeld, kun je deze integreren in jouw webforJ-app.
Voeg afhankelijkheid toe
Webswing-integratie is afhankelijk van de Webswing-integratiemodule van webforJ, die de WebswingConnector component en gerelateerde klassen biedt. Voeg het volgende toe aan jouw pom.xml bestand:
<dependency>
<groupId>com.webforj</groupId>
<artifactId>webforj-webswing</artifactId>
<version>${webforj.version}</version>
</dependency>
Basisimplementatie
Maak een weergave die jouw Swing-app embed met behulp van de WebswingConnector:
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() {
// Initialiseer de connector met jouw Webswing-applicatie-URL
connector = new WebswingConnector("http://localhost:8080/myapp/");
// Stel de afbeeldingsafmetingen in
connector.setSize("100%", "600px");
// Voeg toe aan de weergave-container
self.add(connector);
}
}
De connector legt automatisch een verbinding met de Webswing-server zodra deze aan de DOM is toegevoegd. De UI van de Swing-app wordt dan weergegeven binnen de connectorcomponent.
Configuratieopties
De WebswingOptions klasse stelt je in staat om het gedrag van de connector aan te passen. Standaard start de connector automatisch op wanneer deze wordt aangemaakt en gebruikt standaard verbindingseinstellingen. Je kunt dit gedrag wijzigen door een WebswingOptions instantie te maken en deze op de connector toe te passen.
Bijvoorbeeld, om de uitlogknop te verbergen in een productieomgeving waar je authenticatie beheert via jouw webforJ-app:
WebswingConnector connector = new WebswingConnector("http://localhost:8080/myapp/");
WebswingOptions options = new WebswingOptions()
.setDisableLogout(true); // Verberg de uitlogknop
connector.setOptions(options);
Of als je handmatige controle nodig hebt over wanneer de verbinding start:
// Maak connector zonder automatische start
WebswingConnector connector = new WebswingConnector(url, false);
// Configureer en start wanneer gereed
WebswingOptions options = new WebswingOptions();
connector.setOptions(options);
connector.start();
De opties dekken verbindingsbeheer, authenticatie, debugging en monitoring.