Modernization Tutorial
Ce tutoriel vous guide à travers la modernisation d'une application Java Swing existante en l'intégrant avec webforJ en utilisant le WebswingConnector. Vous apprendrez comment rendre une application de bureau traditionnelle accessible sur le web et comment ajouter progressivement des fonctionnalités modernes du web telles que des dialogues basés sur le web et des formulaires interactifs en utilisant des composants webforJ.
Le code source complet de ce tutoriel est disponible sur GitHub : webforj/webforj-webswing-integration-tutorial
Le scénario
Imaginez que vous avez une application de gestion de clients construite avec Swing qui est en production depuis des années. Elle fonctionne bien, mais les utilisateurs s'attendent maintenant à un accès web et une interface moderne. Plutôt que de tout réécrire, vous utiliserez Webswing pour la rendre immédiatement accessible sur le web, puis ajouter progressivement des fonctionnalités modernes telles que des dialogues basés sur le web et des formulaires en utilisant des composants webforJ.
Point de départ : l'application Swing
L'exemple d'application Swing est un tableau de clients avec des opérations CRUD typiques. Comme beaucoup d'applications Swing d'entreprise, elle suit des modèles standard :
public class Application {
private List<Customer> customers;
private DefaultTableModel model;
private JTable table;
private void createTable() {
String[] columnNames = { "Nom", "Société", "Email" };
model = new DefaultTableModel(columnNames, 0) {
@Override
public boolean isCellEditable(int row, int column) {
return false;
}
};
table = new JTable(model);
table.setRowHeight(30);
table.setRowSelectionAllowed(true);
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
// Gérer le double-clic pour éditer
}
}
});
}
private void showEditDialog(Customer customer) {
JTextField nameField = new JTextField(customer.getName());
JTextField companyField = new JTextField(customer.getCompany());
JTextField emailField = new JTextField(customer.getEmail());
Object[] fields = {
"Nom :", nameField,
"Société :", companyField,
"Email :", emailField
};
int result = JOptionPane.showConfirmDialog(null, fields, "Éditer le client",
JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
}
}
Cette application fonctionne parfaitement comme une application de bureau mais n'a pas d'accessibilité web. Les utilisateurs doivent installer Java et exécuter le fichier JAR localement.
Étape 1 : rendre l'application consciente de Webswing
La première étape consiste à faire détecter à l'application Swing si elle fonctionne sous Webswing. Cela lui permet d'adapter son comportement sans compromettre la compatibilité de bureau.