Setup and Configuration
Die Integration von Webswing mit webforJ umfasst zwei Komponenten: den Webswing-Server, der Ihre Swing-Anwendung hostet, und die WebswingConnector-Komponente in Ihrer webforJ-Anwendung, die ihn einbettet.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllen:
- Java-Desktopanwendung: eine Swing-, JavaFX- oder SWT-Anwendung, die als JAR-Datei verpackt ist
- Webswing-Server: herunterladen von webswing.org
- webforJ-Version
25.10oder höher: erforderlich für die Unterstützung vonWebswingConnector
Architekturübersicht
Die Integrationsarchitektur besteht aus:
- Webswing-Server: führt Ihre Swing-Anwendung aus, erfasst das GUI-Rendering und verarbeitet Benutzereingaben
- webforJ-Anwendung: hosts Ihre Webanwendung mit dem eingebetteten
WebswingConnector - Browser-Client: zeigt sowohl die webforJ-Benutzeroberfläche als auch die eingebettete Swing-Anwendung an
Webswing und webforJ müssen auf unterschiedlichen Ports ausgeführt werden, um Konflikte zu vermeiden. Sowohl webforJ als auch Webswing laufen typischerweise auf Port 8080. Sie sollten entweder den Webswing-Port oder den webforJ-Port ändern.
Einrichtung des Webswing-Servers
Installation und Start
- Laden Sie Webswing herunter von der offiziellen Website
- Entpacken Sie das Archiv an Ihrem bevorzugten Ort (z. B.
/opt/webswingoderC:\webswing) - Starten Sie den Server mit den plattformabhängigen Skripten:
- Linux
- macOS
- Windows
webswing.sh
webswing.command
webswing.bat
- Überprüfen Sie, ob der Server läuft, indem Sie
http://localhost:8080aufrufen
Anwendungs Konfiguration
Sobald der Server läuft, greifen Sie auf die Administrationskonsole unter http://localhost:8080/admin zu, um Ihre Swing-Anwendung hinzuzufügen und zu konfigurieren.
Konfigurieren Sie in der Administrationskonsole:
- Anwendungsname: wird Teil des URL-Pfades (z. B.
myapp→http://localhost:8080/myapp/) - Hauptklasse: der Einstiegspunkt Ihrer Swing-Anwendung
- Classpath: Pfad zu Ihrer App-JAR und Abhängigkeiten
- JVM-Argumente: Speichereinstellungen, Systemeigenschaften und andere JVM-Optionen
- Heimverzeichnis: Arbeitsverzeichnis der Anwendung
Nach der Konfiguration ist Ihre Swing-Anwendung unter http://localhost:8080/[app-name]/ zugänglich.
CORS-Konfiguration
Wenn Sie Webswing in einer webforJ-Anwendung einbetten, die auf einem anderen Port oder einer anderen Domain läuft, müssen Sie Cross-Origin Resource Sharing (CORS) in Webswing konfigurieren. Dies ermöglicht es dem Browser, Webswing-Inhalte innerhalb Ihrer webforJ-Seite zu laden.
Navigieren Sie in der Webswing-Administrationskonsole zu den Konfigurationen Ihrer Anwendung und setzen Sie:
- Erlaubte Ursprünge: Fügen Sie den Ursprung Ihrer webforJ-Anwendung hinzu (z. B.
http://localhost:8090oder*für die Entwicklung)
Diese Einstellung entspricht der Option allowedCorsOrigins in der App-Konfiguration von Webswing.
webforJ-Integration
Sobald Ihr Webswing-Server mit Ihrer konfigurierten Swing-Anwendung und aktiviertem CORS läuft, können Sie ihn in Ihre webforJ-Anwendung integrieren.
Abhängigkeit hinzufügen
Fügen Sie das Webswing-Integrationsmodul zu Ihrem webforJ-Projekt hinzu. Dies stellt die WebswingConnector-Komponente und verwandte Klassen bereit.
<dependency>
<groupId>com.webforj</groupId>
<artifactId>webforj-webswing</artifactId>
</dependency>
Grundlegende Implementierung
Erstellen Sie eine Ansicht, die Ihre Swing-Anwendung mit dem WebswingConnector einbettet:
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 WebswingConnector connector;
public SwingAppView() {
// Initialisieren Sie den Connector mit der URL Ihrer Webswing-Anwendung
connector = new WebswingConnector("http://localhost:8080/myapp/");
// Setzen Sie die Anzeigedimensionen
connector.setSize("100%", "600px");
// Fügen Sie dem View-Container hinzu
getBoundComponent().add(connector);
}
}
Der Connector stellt automatisch eine Verbindung zum Webswing-Server her, wenn er in das DOM eingefügt wird. Die Benutzeroberfläche der Swing-Anwendung wird dann innerhalb der Connector-Komponente gerendert.
Konfigurationsoptionen
Die Klasse WebswingOptions ermöglicht es Ihnen, das Verhalten des Connectors anzupassen. Standardmäßig startet der Connector automatisch, wenn er erstellt wird, und verwendet die standardmäßigen Verbindungseinstellungen. Sie können dieses Verhalten ändern, indem Sie eine Instanz von WebswingOptions erstellen und sie auf den Connector anwenden.
Zum Beispiel, um die Abmeldetaste in einer Produktionsumgebung, in der Sie die Authentifizierung über Ihre webforJ-Anwendung verwalten, auszublenden:
WebswingConnector connector = new WebswingConnector("http://localhost:8080/myapp/");
WebswingOptions options = new WebswingOptions()
.setDisableLogout(true); // Blenden Sie die Abmeldetaste aus
connector.setOptions(options);
Oder wenn Sie manuelle Kontrolle darüber benötigen, wann die Verbindung gestartet wird:
// Connector ohne automatischen Start erstellen
WebswingConnector connector = new WebswingConnector(url, false);
// Konfigurieren und starten, wenn bereit
WebswingOptions options = new WebswingOptions();
connector.setOptions(options);
connector.start();
Die Optionen umfassen Verbindungsmanagement, Authentifizierung, Debugging und Überwachung.