2010-08-10 3 views
2

Je suis en train de développer une application graphique en utilisant rapidement un GUI buidler (Netbeans). Je suis frustré par les widgets Swing ... quand je redimensionne l'un d'eux, les autres semblent se «réorganiser» au mauvais endroit.Générateur d'interface graphique Netbeans avec Java Swing; Quelle est la manière la plus simple d'organiser des Widgets?

Qu'est-ce que vous utilisez pour apprivoiser un tel chaos? Je pensais aux tables ... mais je n'en trouvais pas dans la palette Netbeans.

Cordialement

Répondre

3

Utilisez MigLayout.

Si vous voulez utiliser pure Swing, utilisez GridBagLayout et soyez prêt pour beaucoup de douleur.

+0

Je vois. Il semble que je doive coder manuellement la mise en page. Donc, je suppose que "glisser-déposer" Swing dans Netbeans ne fonctionne pas pour les grands projets GUI? Le moyen le plus efficace est d'utiliser un gestionnaire de disposition, non? –

+0

NB devrait prendre en charge l'édition visuelle de GridBagLayout mais ensuite, je fais aussi toute mon interface utilisateur manuellement. C'est juste plus simple à la fin: je peux définir quelques méthodes d'aide qui construisent l'interface utilisateur comme je le veux avec quelques lignes de code et quand j'ai besoin de changer quelque chose, je sais ce qui se passe. –

1

Vous n'êtes jamais obligé d'utiliser un seul gestionnaire de disposition. C'est le problème avec l'utilisation d'un IDE pour concevoir une interface graphique. Vous obtenez un code boursouflé car l'outil utilise un gestionnaire de disposition unique avec plusieurs contraintes de confusion afin d'obtenir la disposition du formulaire de la façon dont vous faites glisser et déposez-le.

Créez vos formulaires manuellement et utilisez des panneaux imbriqués avec différents gestionnaires de disposition pour disposer les composants comme vous le souhaitez. Le code est plus facile à maintenir et à comprendre.

+0

Votre réponse implique-t-elle de simplement abandonner en utilisant un IDE? Je suis tout à fait d'accord avec ça ... si c'est le cas, pourquoi nous ennuierions-nous même des constructeurs de GUI en dehors de son développement rapide? –

+0

IDE fournir plus d'avantages, puis simplement la conception d'un formulaire. Ils sont parfaits pour le débogage et ainsi de suite, mais je n'aime pas les utiliser pour générer du code. Le code n'est pas portable entre les IDE et vous finissez par passer plus de temps à apprendre comment faire quelque chose dans l'EDI plutôt que d'apprendre Java qui peut être appliqué dans tous les environnements. – camickr

2

La GUI de codage devrait être manuellement le moyen préféré (au moins pour la maintenabilité). Il y a quelques gestionnaires de mise en page Swing Open Source qui sont plutôt bons. Quelqu'un a mentionné MigLayout, qui permet n'importe quelle mise en page, est assez simple à utiliser, mais nécessite souvent quelques ajustements jusqu'à ce que vous obteniez ce que vous voulez. D'autre part, vous pouvez également utiliser DesignGridLayout, qui convient à la plupart des dispositions courantes et est plus facile à utiliser (grâce à son API fluide) que MigLayout.

Questions connexes