Dans le monde Java, il existe trois grandes librairies d’interface : AWT, SWT et Swing, à cela s’ajoute la variante 3D, Looking Glass. Si la question semble triviale, la réponse n’est pas aussi évidente que cela.
Pour créer une interface Java, il existe plusieurs possibilités : passer par l’IDE et des constructeurs (ex. : Matisse de NetBeans), mettre en oeuvre des générateurs automatiques ou encore, utiliser des composants spécifiques. En réalité, ces trois "méthodes" ne s’opposent pas. Tout va dépendre de l’application, du type d’interface, du mode de déploiement. Car selon le contexte et le projet, le choix de la librairie va changer. Trois possibilités WT est une librairie d’interface de base assez pauvre graphiquement et en objets, alors que Swing possède une grande diversité et un look and feel meilleur. Avec ces librairies, on fournit une indépendance vis à vis de la plate-forme. Cependant, on peut avoir un problème d’expérience utilisateur sous Windows si l’application fonctionne sous Windows, sous Linux, sous MacOS X. Faut-il à mon projet, une interface unique (plus ou moins), ou au contraire capable de s’adapter à chaque système ?