Communication
Le WebswingConnector fournit une communication bidirectionnelle entre votre application webforJ et l'application Swing intégrée. Cela vous permet d'envoyer des commandes à l'application Swing et de recevoir des notifications lorsque des événements se produisent à l'intérieur.
Envoi d'actions à Swing
La méthode performAction() permet à votre application webforJ de déclencher des fonctionnalités dans l'application Swing. Cela est utile pour synchroniser l'état, déclencher des mises à jour ou contrôler le comportement de l'application Swing depuis l'interface web.
Par exemple, si votre application Swing a un gestionnaire d'action personnalisé pour rafraîchir les données :
// Déclencher un rafraîchissement dans l'application Swing depuis webforJ
connector.performAction("refresh");
Vous pouvez également envoyer des données avec l'action. L'application Swing reçoit cela via son intégration API Webswing :
// Envoyer une commande avec des données depuis webforJ
connector.performAction("selectRecord", "12345");
// Envoyer des données binaires
byte[] fileContent = Files.readAllBytes(path);
connector.performAction("uploadDocument", "invoice.pdf", new String(fileContent));
Les noms d'action et les formats de données attendus sont définis par l'implémentation de votre application Swing.
Réception d'événements de Swing
Le connecteur déclenche trois types d'événements qui notifient votre application webforJ sur l'état et les actions de l'application Swing.
Événements de cycle de vie
L'événement d'initialisation se déclenche lorsque la connexion Webswing est établie et prête pour la communication :
connector.onInitialize(event -> {
// Connexion établie
connector.getInstanceId().ifPresent(id ->
console.log("Connecté à l'instance Webswing : " + id)
);
});
L'événement de démarrage se déclenche lorsque l'application Swing a complètement chargé et est en cours d'exécution :
connector.onStart(event -> {
// L'application Swing est maintenant visible et interactive
console.log("Application prête pour l'interaction utilisateur");
});
Événements d'action personnalisés
Lorsque votre application Swing envoie des actions personnalisées vers l'interface web en utilisant l'API Java Webswing, celles-ci sont reçues en tant qu'événements d'action :
connector.onAction(event -> {
String actionName = event.getActionName();
switch(actionName) {
case "dataUpdated":
event.getActionData().ifPresent(data -> {
// Gérer la notification de mise à jour
updateWebInterface(data);
});
break;
case "fileReady":
event.getActionBinaryData().ifPresent(data -> {
// Données binaires
saveFile(fileData);
});
break;
}
});
Moving a desktop Java app to the web?
Send us a screenshot of one screen and we'll reply with how it moves to webforJ.
Continuez à apprendre.
ArticleRun a Java Swing Application in the Browser Without a Rewrite
ArticleStrangler Fig Pattern for a Java Swing App, Step by Step
ArticleMigrate a Java desktop app to the web with AI: a decision guide
ArticleJava Swing to web migration: pick the right path
ArticleSwing to JavaScript communication with webforJ and Webswing
ArticleJava Swing technical debt: what staying costs you