Quelle plate-forme devez-vous choisir pour développer des applications de bureau Java?
1. Introduction
En réalité, il y a plusieurs de questions courantes avec Java:
- Quelle solution dois je sélectionner pour programmer une application de bureau Desktop?
- Y a t- il une solution de programmation une site web ayant de l'interface similaire de l''application de Desktop?
Dans ce document, je les répondrai de la manière générale et je vous donnerai des solutions correspondantes,
Application de Desktop:
C'est une application de Desktop écrite par Java (Java Swing):
Application web:
C'est une application Web qui a une interface similaire de celle de l'application de Desktop, elle est écrite sur Eclipse RAP:
2. La programmation de l'applicationJava Desktop
En effet, pour programmer une application de Desktop, vous avez 2 choix:
- Utilisation Swing - est une bibliothèque disponible sur JDK et est capable d'exécuter sur différents systèmes d'exploitation (Windows, Unix, Mac OS,..)
- Utilisation SWT - est une bibliothèque pour programmer l'application de Desktop et et développée par IBM. Elle est capable d'exécuter sur différents systèmes d'exploitation (Window, Unix, Mac OS,..)
C'est une image de l'application Desktop qui est écrite en SWT et exécute sur de différents système d'opérateur:
C'est une image d'un Desktop écrit par Swing. Par défaut "Look And Feel", elle semble incensée.Danns le programme, vous pouvew choisir une autre L-A-F pour construire une interface similaire de Windows ouLinux si vous voulez.
Swing
Le package AWT (Abstract Window Toolkit) est une bibliothèque dévéloppées pour le programme de Desktop disponible dans JDK. Mais, malheureusement elle ne fonctionne un peu moins bien que prévu sur différents systèmes d'exploitation. C'est la raison pour laquelle Swing est né et remplacé AWT afin d'assurer qu'elle exécute bien sur différents systèmes d'exploitation.
Swing construit une interface graphique entièrement par Java et s'exécute sur tous les systèmes d'exploitation. Il ne remplace pas AWT, mais hérite de AWT plutôt. C'est sa faiblesse qui rend les programmeurs confus. Un grand nombre de classes appartenant à AWT n'ont pas été utilisées ou deviennent des classes héritées par les classes de Swing. À mon avis, cela ne permet pas à Swing d'être apprécié.
SWT (Standard Widget Toolkit)
SWT (Standard Widget Toolkit) est une bibliothèque graphique libre pour les applications de Desktop, initiée par IBM. SWT n'est pas un standard Java.
Cette librairie utilise le système graphique de la plate-forme d'exécution(Button, Label, ...) et créer uniquement des composantes graphiques qui n'existent pas dans cette plate-forme là par Java.
Cette librairie utilise le système graphique de la plate-forme d'exécution(Button, Label, ...) et créer uniquement des composantes graphiques qui n'existent pas dans cette plate-forme là par Java.
Nếu lập trình SWT tốt nhất bạn chọn Eclipse IDE để lập trình. Eclipse có thể tích hợp plugin WindowBuilder hỗ trợ kéo thả các thành phần giao diện vô cùng dễ dàng. WindowBuilder vốn là một sản phẩm thương mại nay đã được miễn phí sử dụng khi tích hợp vào Eclipse.
Comparer SWT et Swing
Swing est une bibliothèque Java pure. Après avoir terminé la programmation de l'application, vous pouvez configurer Look And Feel pour obtenir une interface similaire à Windows ou Linux ou Mac Os. Certains Look And Feels sont disponibles sur JDK, afin que vous puissiez utiliser ou acheter L-A-F. Vous exécutez donc une application Swing sur la plate-forme Windows sur laquelle l'interface d'affichage appartient à Linux, Mac Os, ...
Ceci est un lien d'introduction de la belle L-A-F:
SWT - Cette bibliothèque n'est pas entièrement écrite par Java. Lorsqu'il fonctionne sur un système d'exploitation, il essaie d'utiliser les bibliothèques de composants de ce système d'exploitation (par exemple, il utilise des Button, Label, Frame, ...), et utilisez uniquement Java pour créer des composants s'ils ne sont pas disponibles sur le système d'exploitation . Par conséquent, comme pour la vitesse, SWT est plus rapide que Swing.
Avec SWT nous n'avons pas le concept de Look And Feel comme Swing. Lorsque vous exécutez l'application sur la plate-f orme de tout système d'exploitation, l'interface est caractérisée par ce système d'exploitation.
Comparer les performances de l'application:
Vous devriez choisir SWT ou Swing?
Je pense que vous devriez choisir SWT pour la programmation d'une application Desktop, car il s'agit d'un paquet de bibliothèque avec une fourniture abondante de différents composants d'interface. De plus, il est né après Swing, donc c'est le résultat d'étudier et de remédier des faiblesses de Swing.
SWT avec des progiciels de bibliothèque en expansion est en cours de développement, par exemple:
Eclipse dévelope une nouvelle plate- forme baptisée RAP (Remote Application Platform) - RAP vous permet de programmer des applications donc les interfaces sont similaires comme celles des applications Desktop, et elle utilise également des classes familières dans SWT. Donc, vous pouvez écrire une application qui peut fonctionner à la fois sur la plate-forme Web et celle sur Desktop. C'est une force si vous choisissez SWT.
Voyez une Demo (une démo) du programme écrit par RAP:
3. La technologie Eclipse
Nous avons besoin d'avoir une vue générale de la technologie d'Eclipse
RCP (Rich Client Platform) : est une platform utilisant le programme SWT pour programmer des applications Desktop. L'exéction de différents systèmes d'opération.
(Voir plus en détails de RCP ci-dessous.)
(Voir plus en détails de RCP ci-dessous.)
RAP (Remote Application Platform): Est une plate-forme utilisant la bibliothèque RWT pour la programmation d'applications fonctionnant sur le Web comme l'application Desktop.
- RWT (RAP Widget Toolkit) est un paquet de bibliothèque dont le nom de classes est identique à celui de SWT. Il a des méthodes similaires qui vous aident à programmer des applications RAP en cours d'exécution sur le Web. Grâce à cette caractéristique, avec seulement un source code, vous pouvez exécuter l'application sur la plate-forme Desktop ou Web.
RAP fonctionne bien sur différents navigateurs.
Tabris - est un paquet de bibliothèque qui écrit des applications Mobile et peut fonctionner sur différents types de Mobile.
4. RCP fait quoi?
RCP (Rich Client Platform) : Une plate- forme utilisant la bibliothèque SWT pour programmer des applications Desktop. L'exécution sur différents système de l'opération, c'est une plate- forme créée Eclipse IDE.
Par conséquent, RCP est une plate- forme utilisant SWT comme base de construction. Vous pouvez utiliser la plate-forme RCP pour programmer des applications Desktop.
L'image ci-dessous illustre une application simple (utilisez uniquement SWT, sans utilisant les choses avancées de RCP Platform):
RCP Platform a construit une plate-forme qui vous permet de programmer des interfaces structurelles compliquées comme Eclipse IDE, Il comprend les systèmes Menu, Toolbar, View, Editor, ...
RCP vous permet également de développer des Plugin intégrés dans Eclipse que vous utilisez.
5. Qu'est- ce que RAP fait?
RAP (Remote Application Platform): Est une plate-forme utilisant la bibliothèque RWT pour programmer des applications exécutant sur Web comme celles de Desktop.
- RWT (RAP Widget Toolkit) est un ensemble de bibliothèques avec des classes dont les noms sont identiques à ceux des classes de SWT et dont les méthodes sont similaires. Cela vous aide à programmer des applications RAP sur le Web. Étant donné que cette fonctionnalité ne nécessite qu'un seul source code, vous pouvez exécuter l'application en tant qu'application de Desktop ou sur le Web.
Comme RCP, RAP est une plate-forme qui nous permet de créer des applications dont les interfaces sont aussi compliquées que celles d' Eclipse IDE.
6. RAP & RCP - Pourquoi le même code est-il?
Celle-ci est la structure de deux plate-formes:
- RCP est basé sur SWT (Standard Widget Toolkit)
- RAP est basé sur RWT (RAP Widget Toolkit)
Voici est un exemple du code, ajouter un Button à une Composite:
** MyApplicationWindow **
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
public class MyApplicationWindow {
.......
protected void createContents() {
.......
Composite composite = new Composite(shell, SWT.NONE);
composite.setLayout(new GridLayout(1, false));
Button btnMyButton = new Button(composite, SWT.NONE);
btnMyButton.setText("My Button");
}
}
SWT, et RWT utilisent la classe org.eclipse.swt.widgets.Button pour créer Button .
Le code de la classe Button dans SWT (exécuter sur desktop) est différent à celui de la classe Button de RWT (exécuter sur WEB).
Le code de la classe Button dans SWT (exécuter sur desktop) est différent à celui de la classe Button de RWT (exécuter sur WEB).
- La classe Button de SWT est emballée dans le fichier jar baptisée org.eclipse.swt_*.jar
- La classe Button de RWT est emballée dans le fichier jar nommée org.eclipse.rap.rwt_*.jar
Target Platform is a library environment where you can declare.
You can declare two Target Platforms. One includes RCP libraries, and another includes RAP libraries.
Of course, RAP and RCP have some differences. No all components of SWT have equivalently on RWT, and vice versa. In specific situations, we can handle this difference. Applications which can run on both Desktop and Web are known as "Single Sourcing".
You can declare two Target Platforms. One includes RCP libraries, and another includes RAP libraries.
- RCP Target Platform
- RAP Target Platform
Of course, RAP and RCP have some differences. No all components of SWT have equivalently on RWT, and vice versa. In specific situations, we can handle this difference. Applications which can run on both Desktop and Web are known as "Single Sourcing".
7. Où devriez vous commencer?
Si vous sélectionnez la programmation RAP-RCP. Vous devez étudier de SWT, cela signifie que vous pouvez étudier facilement de RWT.
Travailler avec SWT signifie de collaborer avec des objets Widget (Button, Label, ..) et de gérer Layout. WindowBuilder qui est un plugin, nous permet de glisser et déplacer des composants sur l'interface et automatiquement générer des codes correspondants.
Travailler avec SWT signifie de collaborer avec des objets Widget (Button, Label, ..) et de gérer Layout. WindowBuilder qui est un plugin, nous permet de glisser et déplacer des composants sur l'interface et automatiquement générer des codes correspondants.
Vous pouvez faire des références dans le document ci- dessous, il vous instruit de programmer SWT avec WindowBuilder qui est un outil virtuel qui vous aide à glisser et déplacer facilement des composants de l'interface.
Après avoir maîtrisé la programmation avec SWT, vous pouvez continuer avec le RCP ou le RAP.
SWT:
RCP
RAP
- Hướng dẫn lập trình Eclipse RAP cho người mới bắt đầu - Ứng dụng cơ bản
Eclipse RAP
- Installer RAP Tools pour Eclipse
- Quelle plate-forme devez-vous choisir pour développer des applications de bureau Java?
- Le Tutoriel Eclipse RAP pour débutant - Application e4 Workbench
- Installation de la plate-forme cible Eclipse RAP (RAP Target Platform)
- Créer Eclipse RAP Widget à partir de ClientScripting widget
- Installer RAP e4 Tooling pour Eclipse
Show More
Tutoriels Eclipse Technology
- Installer Tycho pour Eclipse
- Tutoriel Java OSGi pour débutant
- Créer un projet Java OSGi avec Maven et Tycho
- Installer WindowBuilder pour Eclipse
- Quelle plate-forme devez-vous choisir pour développer des applications de bureau Java?
- Programmation de l'application Java Desktop à l'aide de SWT
- Le Tutoriel de Eclipse JFace
- Installation de la plate-forme cible Eclipse RAP (RAP Target Platform)
- Installer RAP e4 Tooling pour Eclipse
- Créer Eclipse RAP Widget à partir de ClientScripting widget
- Le Tutoriel Eclipse RCP 4 pour débutant - Application e4 Workbench
- Installer RAP Tools pour Eclipse
- Le Tutoriel Eclipse RAP pour débutant - Application e4 Workbench
Show More
Java Basic
- Personnaliser le compilateur Java pour traiter votre annotation (Annotation Processing Tool)
- Programmation Java pour l'équipe utilisant Eclipse et SVN
- Le Tutoriel de Java WeakReference
- Le Tutoriel de Java PhantomReference
- Tutoriel sur la compression et la décompression Java
- Configuration d'Eclipse pour utiliser le JDK au lieu de JRE
- Méthodes Java String.format() et printf()
- Syntaxe et nouvelles fonctionnalités de Java 8
- Expression régulière en Java
- Tutoriel de programmation Java multithreading
- Bibliothèques de pilotes JDBC pour différents types de bases de données en Java
- Tutoriel Java JDBC
- Obtenir des valeurs de colonne automatiquement incrémentées lors de l'insertion d'un enregistrement à l'aide de JDBC
- Le Tutoriel de Java Stream
- Le Tutoriel de Java Functional Interface
- Introduction à Raspberry Pi
- Le Tutoriel de Java Predicate
- Classe abstraite et interface en Java
- Modificateurs d'accès en Java
- Le Tutoriel de Java Enum
- Le Tutoriel de Java Annotation
- Comparer et trier en Java
- Le Tutoriel de Java String, StringBuffer et StringBuilder
- Tutoriel de gestion des exceptions Java
- Le Tutoriel de Java Generics
- Manipulation de fichiers et de répertoires en Java
- Le Tutoriel de Java BiPredicate
- Le Tutoriel de Java Consumer
- Le Tutoriel de Java BiConsumer
- Qu'est-ce qui est nécessaire pour commencer avec Java?
- L'histoire de Java et la différence entre Oracle JDK et OpenJDK
- Installer Java sur Windows
- Installer Java sur Ubuntu
- Installer OpenJDK sur Ubuntu
- Installer Eclipse
- Installer Eclipse sur Ubuntu
- Le Tutoriel Java pour débutant
- Histoire des bits et des bytes en informatique
- Types de données dans Java
- Opérations sur les bits
- Le Tutoriel de instruction Java If else
- Le Tutoriel de instruction Java Switch
- Les Boucles en Java
- Les Tableaux (Array) en Java
- JDK Javadoc au format CHM
- Héritage et polymorphisme en Java
- Le Tutoriel de Java Function
- Le Tutoriel de Java BiFunction
- Exemple de Java encoding et decoding utilisant Apache Base64
- Le Tutoriel de Java Reflection
- Invocation de méthode à distance en Java
- Le Tutoriel de Java Socket
- Quelle plate-forme devez-vous choisir pour développer des applications de bureau Java?
- Le Tutoriel de Java Commons IO
- Le Tutoriel de Java Commons Email
- Le Tutoriel de Java Commons Logging
- Comprendre Java System.identityHashCode, Object.hashCode et Object.equals
- Le Tutoriel de Java SoftReference
- Le Tutoriel de Java Supplier
- Programmation orientée aspect Java avec AspectJ (AOP)
Show More
- Tutoriels de programmation Java Servlet/JSP
- Tutoriels de Java Collections Framework
- Tutoriels Java API pour HTML & XML
- Tutoriels Java IO
- Tutoriels Java Date Time
- Tutoriels Spring Boot
- Tutoriels Maven
- Tutoriels Gradle
- Tutoriels Java Web Service
- Tutoriels de programmation Java SWT
- Tutoriels de JavaFX
- Tutoriels Java Oracle ADF
- Tutoriels Struts2
- Tutoriels Spring Cloud