9
votes

Quel serait le meilleur gestionnaire de mise en page?

Entrez la description de l'image ici

Je voudrais faire une interface graphique qui ressemble à ce qui précède. À l'heure actuelle, j'ai un panneau qui détiendra l'étiquette du nom, le nom de Textfield, l'étiquette de la date de Brith et la Textfield. Ma question est de savoir ce qui serait le meilleur gestionnaire de mise en page à utiliser sur le panneau de sorte que la ligne de "composants de nom" (Lable + Textfield) et la rangée de "composants de la date de naissance" (Lable + Textfield), seraient uniformément étalées verticalement dans le panneau.

J'ai pensé à utiliser la mise en page d'écoulement, mais cela n'entraînerait aucun espace entre les deux rangées de composants. J'ai pensé à utiliser une mise en page de grille, mais je ne connais pas la taille de l'espace entre les deux rangées de composants.

Une approche plus compliquée ... J'ai pensé à placer l'étiquette de nom et de textfield dans un panneau, ainsi que l'étiquette de la date de naissance et le champ de texte dans un autre panneau, puis rendez la disposition de la bordure du panneau de base et le nom du nom pour être nord, Date de naissance à Soyez sud ... mais je devrais alors vous assurer que les composants de noms sont centrés verticalement dans le panneau Nom et les composants de datation de naissance sont centrés verticalement dans le panneau Date de naissance.

Toute aide est appréciée. L'objectif est de s'assurer que la ligne de composants de noms et la ligne de composants de la date de naissance sont étalées verticalement, les composants de nom étant centrés verticalement sur la moitié supérieure et les composants de la date de naissance centrés verticalement sur la moitié inférieure. Si quelque chose semble déroutant, merci de me faire savoir que je vais essayer de reformuler une meilleure compréhension.

J'utilise strictement Java balançoire avec éclipse, pas de constructeur d'interface graphique ou quoi que ce soit comme ça.


1 commentaires

Il est certainement possible d'y parvenir avec le formelayout de Jgoodies, mais qui n'est pas inclus dans la JDK.


4 Réponses :



1
votes

grouplayout convient à vos besoins. Jetez un coup d'oeil. Il a la possibilité de créer automatiquement des lacunes (ou vous pouvez gérer votre propre) et c'est génial pour créer des formulaires. Il fonctionne horizontalement ou verticalement.


3 commentaires

En dernier sur la liste des mises en page, je recommanderais dans ce cas.


+1 Ceci est une chose grouplayout convient bien, pour exemple .


@Eddie est compliqué à utiliser et provoque du désordre dans votre code. MIG et GRIDBAG sont bien meilleurs à utiliser.



3
votes

Je vous recommande vivement de rester à l'écart des mises en page conçues pour être automatisées par un gestionnaire de mise en page - Ils peuvent être flexibles, mais ils ont tendance à être utilisés comme marteau, un très maladroit qui prend beaucoup de funipal si vous voulez des composants Redimensionnez de manière naturelle.

Apprendre à utiliser les responsables de la mise en page est un peu d'art. Vous ne choisissez pas un seul et n'utilisez-le pas pour chaque problème, à la place, vous prenez quelques types différents et nichez-les d'une manière qui ressemble à vos données.

Dans votre cas, je pense que vous vous entendriez assez bien avec 3 dispositions d'écoulement, deux horizontal contenus dans un seul vertical, ce type d'interface graphique est exactement ce que Flowlayout a été faite pour et que vous n'aurez pas à ajouter de violation de paramètres.

Au fait, beaucoup Les problèmes peuvent être résolus par la nidification des bordures et des dispositions de débit - la frontière peuvent être exceptionnellement utiles en raison de la manière dont le moyen agit de prendre autant d'espace que possible, mais de laisser les 4 côtés autant de la place qu'ils ont besoin - en fait de la frontière souvent A seulement 2 ou 3 zones remplies - mais peut facilement nier d'autres dispositions de bordure ou d'écoulement. Celles-ci conduisent à des gisières nécessitant des spécificités de très peu de placement, mais redimensionnent toujours naturellement.

Edit: Voici un certain code de travail de deux dispositions de débit imbriquées dans une boîte de boîte.

C'est groovy (pas Java) mais la différence est purement syntaxe - avec moins d'encombrement.

Notez le SIMLICTY et manque de chiffres pour inventer - cela fonctionne juste à peu près comme si vous attendiez. xxx


3 commentaires

Je ne suis pas d'accord. Un grand nombre des gestionnaires de mise en page intégrés sont définitivement adaptés pour être utilisés de cette manière. Mais un gestionnaire de présentation complet en vedette complète telle que Miglayout (comme recommandé par HTZ) vous permettra certainement d'utiliser une seule disposition pour tous vos besoins et de fournir des règles prévisibles et faciles pour permettre de redimensionner de manière naturelle.


Je suis d'accord avec les deux. Je suis juste un apprentissage débutant sur cette affaire d'interface graphique ... et pendant que je peux concevoir une interface graphique à l'aide de dispositions imbriquées (ce qui me permet de penser un peu comme un casse-tête), je voudrais parfois profiter si je pouvais obtenir tout ce qui est fait avec une seule disposition


Le Miglayout est vraiment un bon manager, mais je suis d'accord avec Bill K au point que vous obtenez les meilleurs résultats en mélangeant les différents layoutManagers. J'utilise habituellement MIGLAYOUT, mais parfois la mise en page souhaitée exige un autre gestionnaire, lorsque vous souhaitez garder le code aussi simple que possible.



9
votes

J'aime le Miglayout . Dans ce cas, il serait très facile de mettre en place les composants car le miglayout a un comportement semblable à une table et que les composants seraient disposés de cette manière. Ceci est décrit dans le QuickStarguide .

Edit:

ici est un petit exemple:

Entrez la description de l'image ici xxx


2 commentaires

J'ai utilisé Miglayout de manière professionnelle sur certains UIS extrêmement compliqués et il a manipulé tout ce que j'ai jeté dessus.


c'est très intéressant. En fait, je n'ai jamais entendu parler de cela avant, mais cela ressemble à la conception de la mise en page plus facile. Malheureusement, j'aime votre réponse, mais l'autre gars avait l'air de mettre beaucoup d'efforts à la diabolique, alors je vous ai donné un et lui la chèque.