28 votes

Java, générateur d'interface graphique ou codage à la main ?

Le logiciel de ma société comporte de nombreux formulaires, jusqu'à présent nous avons écrit le code manuellement (dans le style MVC).

Nous envisageons de commencer à utiliser un générateur d'interfaces graphiques.

Il y a quelques problèmes avec l'utilisation d'un générateur.

  1. Des parties du code ne sont pas lisibles.
  2. Des parties du code ne sont pas éditables.
  3. Il sera plus difficile d'éditer le code plus tard.
  4. Nous devrons continuer à utiliser le générateur à l'avenir, même si nous voulons le remplacer ou écrire manuellement, et personne ne peut garantir que l'outil sera disponible et pris en charge à l'avenir.

Je souhaite tirer des enseignements de l'expérience des autres :

  • Recommandez-vous l'utilisation d'un outil ou devrions-nous continuer à écrire le code manuellement ?
  • Quel générateur est le meilleur ?
  • Comment faites-vous face aux problèmes ? (Y a-t-il d'autres problèmes ?)

0voto

DuncanKinnear Points 1062

Que vous construisiez des formulaires GUI en utilisant un éditeur GUI ou non, je vous recommande vivement de développer un ensemble de panels 'bean' standard que vous pouvez placer sur vos formulaires.

Nous avons environ 100 de ces beans que nous avons utilisés dans plus de 600 formulaires. Ci-dessous, une image montrant l'un de ces beans :

entrer la description de l'image ici

Ce panel se compose d'une étiquette standard, d'un indicateur obligatoire (astérisque rouge), d'un champ d'édition (un combo-box dans ce cas) et d'un champ en lecture seule (le cadre gris). Dans ce cas, le combo-box et les champs en lecture seule sont mutuellement exclusifs - un seul est visible à la fois, en fonction du mode du formulaire/du champ.

Ces beans contiennent notre fonctionnalité standard (framework), qui inclut des couleurs standard, des polices, etc. Si nous voulons modifier la manière dont toutes les occurrences de ces champs fonctionnent, ou à quoi ils ressemblent, nous le changeons dans une classe et cela change sur tous les formulaires qui l'incluent.

Maintenant, comment construisons-nous nos formulaires ? Eh bien, nous réalisons tous nos formulaires dans le générateur GUI NetBeans Matisse. Nous en sommes très satisfaits. Bien que vous ne puissiez pas modifier le code qu'il génère, je n'ai jamais eu d'instances où cela m'a empêché de faire quelque chose dans l'interface graphique. Les beans que j'ai mentionnés ci-dessus peuvent être facilement ajoutés à la Palette, donc les ajouter aux formulaires est un jeu d'enfant.

Il existe cependant certaines techniques qui rendent les choses plus faciles, à mon avis. Nous utilisons BoxLayout (dans l'axe de la page) sur la plupart de nos formulaires, et combiné avec nos panels bean standard, construire un formulaire peut littéralement prendre quelques minutes à réaliser (au moins du côté graphique). De plus, FlowLayout est utile si vous avez plusieurs contrôles sur la même 'ligne' sur le formulaire (par exemple, plusieurs cases à cocher).

Et c'est facile aussi, ce qui signifie que nous pouvons obtenir certains des analystes métier (non-programmeurs) à construire les formulaires avant qu'un programmeur n'ajoute le code 'sous le capot'.

0voto

BeyondProgrammer Points 212

J'ai commencé en tant que programmeur VB et ensuite je suis passé à C#. Je dirais que le générateur d'interface graphique Netbean est encore loin de Microsoft, notamment en ce qui concerne le gestionnaire de mise en page dans le formulaire. On devient vraiment frustré lorsque l'on essaie de déplacer des boutons et des balises pour les aligner comme on le souhaite, et que les icônes que l'on ne veut pas déplacer se mettent à bouger dans tous les sens.

Le code généré automatiquement ne peut pas non plus être modifié dans la source, ce qui le rend encore moins convivial pour l'utilisateur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X