Comment faire un Composite étendre à la largeur maximale d'un autre Composite
J'ai besoin de reformuler la question un peu.
Mise à jour de la question ci-dessous.
J'ai un Composite qui contient:
myjpanel.setLayout(new BoxLayout(selectors, BoxLayout.PAGE_AXIS));
Il contient la suite de trois panneaux:
Composite avec taille fixe 'x' et 'y'
Composite avec pas de taille fixe
Composite avec pas de taille fixe et de petite hauteur
La deuxième Composite contient un JTable il élargit pour remplir toute la hauteur et pousse le panneau du bas, tout en bas, comme prévu.
Comme ceci:
t
t
m
m
m
m
m
b
t = panneau supérieur,
m = panneau du milieu,
b = en bas du panneau.
Qui fonctionne. Mais le panneau de fond n'a pas envie de remplir la totalité de la largeur du parent qui est un problème.
ttt
mmm
b
Je voudrais que ce soit, lorsque le panneau remplit toute la largeur:
ttt
mmm
bbb
ou cette, où le panneau de fond est à gauche centré:
ttt
mmm
b
Vieille question ci-dessous:
J'ai un Composite qui contient:
.setLayout(new BoxLayout(selectors, BoxLayout.PAGE_AXIS));
À l'intérieur, il ya plus de trois JPanels. Les deux premiers sont de taille fixe et celui du milieu n'est pas.
Je veux que mon panneau du bas pour ne prendre que la hauteur des besoins, mais utilise toute la largeur disponible de l'extérieur Composite.
J'ai essayé d'utiliser de la colle, mais en vain, et je préfère ne pas définir préféré et min/max de tailles.
Est-il un moyen de dire la composante de "Remplir l'ensemble des parents de la largeur" en utilisant simplement le layout manager et cadre. Je préfère ne pas commencer à faire des hacks comme paramètre de tailles et de redéfinition des méthodes.
Remarque: je ne peux pas mettre de la colle ou de remplissage dans le panneau intérieur, seul le panneau extérieur et son directeur de disposition peut être modifiée.
Tentative 1:
À l'aide de myPanel.setLayout(new GridLayout(3, 1));
n'a pas produit les résultats escomptés. Il a fait une grille comme ceci:
XX
X
Mais je m'y attendais:
X
X
X
Tentative 2:
À l'aide de myPanel.setLayout(new GridLayout(0,1));
n'a pas produit les résultats escomptés. Il a fait une grille comme ceci:
x
x
x
Mais tous les panneaux étaient de la même taille, en ignorant les contraintes.
Je suis à l'aide de BoxLayout comme il est dit dans la question, mais je vais essayer un borderlayout à la place. Juste un instant
OriginalL'auteur Martin Nielsen | 2013-01-10
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez un
BorderLayout
et lab
panneau est dans leSOUTH
ouPAGE_END
il occupe toute la largeur.OriginalL'auteur Andrew Thompson
La façon la plus simple serait d'utiliser un autre gestionnaire de mise en page tels que
GridLayout
qui automatiquement la taille des composants pour remplir le conteneur parent.Serait-vis avec les deux fixe la taille des composants qui partage le conteneur?
Sinon je serais plus que satisfait par la gauche de l'alignement de l'intérieur du composant, mais je ne peux pas semblent le faire tant que le setAllignmentX méthode de ne pas faire de squat
J'ai essayé GridLayout, il n'a pas d'organiser les composants verticalement, mais placés 2 en haut et 1 dans le fond
Vous avez à l'utiliser comme
new GridLayout(0, 1);
OriginalL'auteur Reimeus
Vous pouvez utiliser GridBagLayout, pour cela, à l'aide de
Un exemple pour votre aide, concernant le GridBagLayout.
Comme demandé dans les commentaires, liés à ce
La BoxLayout est une autre alternative, qui respecte la préférée de la taille des composants. Vous pouvez essayer si GridBagLayout est difficile 🙂
Code avec GridBagLayout, pour plus de clarté :
De SORTIE :
Jetez un oeil à BoxLayout, édités dans ma réponse.
Ehm. Je ne pense pas que vous lisez la question. Je SUIS à l'aide de BoxLayout!
OriginalL'auteur nIcE cOw
Ici quelques Composite est utilisé pour l'expansion et la contraction statique des valeurs d'entrée.
De Java à l'aide de la minuterie est de Retarder et d'accélérer le panneau d'affichage de l'heure.
//Obtenir la hauteur et la largeur du panneau ,que ce que nous voulons afficher que les diapositives de la hauteur.
//Intializing minuterie avec certaines valeurs statiques - vitesse Moyenne)
/**fonction de réduction Composite
*
*/
//hauteur de glisser jusqu'à la position supérieure
}
//Déclaration de la classe et à l'aide de rétrécissement de l'événement onclick
OriginalL'auteur sathya