2009-07-28 5 views
1

J'écris des applications web Java (JSF, Struts, JSR168) depuis de nombreuses années. Avec le départ récent d'un collègue, on dirait que je vais créer plus d'applications clientes. J'ai utilisé Eclipse depuis le début et je suis vraiment à l'aise avec ça. Il semble que SWT diminue (juste une opinion basée sur la littérature que je peux trouver) et Swing est en pleine expansion.Développeur Java migrant vers le développement de Java Desktop

Ma question: Y at-il de la valeur à apprendre Swing en écrivant des applications à la main dans Eclipse (par opposition à l'utilisation de Matisse dans Netbeans)?

Répondre

10

Oui, il est très utile d'apprendre à coder manuellement les applications Swing. Une raison à cela est qu'aucun concepteur d'interface graphique que je connais ne fait toujours ce que vous voulez qu'il fasse. L'autre - et à mon avis une raison plus importante - est que la plupart des constructeurs d'interfaces graphiques (en particulier NetBeans) génèrent tout et tout en une seule classe. Cela peut être très gênant car la maintenabilité est beaucoup réduite (séparation des préoccupations). De nombreux constructeurs d'interface graphique ont également bloqué des régions, c'est-à-dire que vous ne pouvez pas modifier le code généré manuellement. Ou si vous le faites, le constructeur GUI l'écrasera la prochaine fois que vous l'utiliserez. Toutefois, les LayoutManagers standard fournis avec Swing sont très compliqués. C'est pourquoi je suggère que vous essayez MigLayout ou JGoodies FormLayout. Sur le site de JGoodies, vous trouverez également d'autres librairies à des fins alternatives. Look & Feels, Binding and Validation, ce qui peut être très utile.

Je suggère également que vous jetez un oeil à la Presentation Model pattern (Martin Fowler), ce qui aide beaucoup si vous voulez tester votre unité d'interface graphique.

Si vous êtes motivé pour améliorer le design et ajouter des effets très cool à votre application, consultez le livre Filthy Rich Clients.

Espérons que ça aide.

+0

NetBeans de Matisse génère tout en une seule classe que si vous le faites de cette façon. Je pense qu'il est préférable de faire des panneaux séparés, puis de construire l'ensemble de la vue d'eux. Et les régions bloquées - essayez de faire un clic droit et sélectionnez "personnaliser le code". Vous pouvez écrire n'importe quoi dans les régions bloquées. Matisse est assez flexible, il suffit de l'utiliser de la bonne façon :-) –

+0

Je sais, mais c'est plutôt compliqué imo. Est-ce qu'il supporte la coloration syntaxique/l'auto-complétion? –

3

Oui, définitivement - même si vous envisagez d'utiliser Matisse la plupart du temps, vous bénéficierez d'une bonne compréhension du code Swing sous le capot.

0

Cela aidera certainement. Peut-être que vous atteindrez la fin de ce que Matisse peut faire, et que vous voulez modifier une partie du code à la main. À ce stade, il vaudra mieux savoir ce qui se passe sous le capot.

0

Notez que l'utilisation de Matisse et l'écriture Swing à la main ne s'excluent pas du tout mutuellement. Matisse produit simplement du code Swing, et vous pouvez le personnaliser. Vous pouvez faire une partie de votre interface graphique avec Matisse, et la partie à côté de celle-ci, par exemple. Obtenez le meilleur des deux mondes - c'est comme ça que je le fais, au moins.

Un moyen rapide d'apprendre à faire quelque chose dans Swing est de le faire dans Matisse, puis de voir le code qu'il a produit.

0

Vous avez absolument besoin de savoir comment fonctionne Swing, car vous devrez probablement adapter et modifier les choses que le programme GUI vous demande de savoir comment ça marche et comment ça s'appelle.

Java Tutorial a une bonne piste Swing: http://java.sun.com/docs/books/tutorial/uiswing/

Questions connexes