Pouvez-vous définir un permanent, de la taille d'un Composite à l'intérieur d'une JFrame?
Mon problème actuel est que j'ai une JFrame avec un 2x2 GridLayout. Et à l'intérieur de l'un des carrés, j'ai un Composite qui est d'afficher une grille. Je vais avoir une journée sur le terrain avec la librairie java swing... prendre un coup d'oeil
Java est automatiquement élargissant chaque JLabel pour s'adapter à l'écran. Je veux juste être ceux carrés bleu (l'eau) et la bordure noire et pas que le gris de l'espace. Est-il possible que je peux juste régler la taille de ce Composite de façon permanente de sorte que je n'ai pas à passer par la modification de la taille de la JFrame un million de fois avant que je l'exacte dimension de sorte que le gris de l'espace disparaît?
Je tiens également à définir la taille de ces boutons afin qu'ils ne sont pas si énorme (BorderLayout
est utilisé pour les boutons et TextField)
OriginalL'auteur Tomek | 2008-11-25
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez que les deux damiers reste de la même taille, alors vous aurez besoin de les avoir à chaque contenues dans leur propre
JPanel
. Définir chacun de ces parent Composite pour avoir une mise en page type deGridBagLayout
. Définir la preferedSize pour chaque damier composant, puis les ajouter à leurs conteneurs respectifs. GridBagLayout devrait par défaut laïcs chaque conseil d'administration dans le centre de la mère Composite. De sorte que la fenêtre est redimensionnée, le Composite parent pourront obtenir de plus grandes ou plus petites, mais les premiers composants à l'intérieur restera la même taille.Sinon, vous pourriez avoir votre carrés bleus à l'échelle de la taille de la fenêtre est redimensionnée en ayant chaque damier carré être un
JPanel
avec unBorderLayout
gestionnaire de mise en page et l'ajout de laJLabel
(avec un arrière-plan bleu) pour sonBorderLayout.CENTER
emplacement.Que pour vos boutons, essayez quelque chose comme ceci:
Enfin, envisagez d'utiliser un outil de conception pour votre Swing de l'interface utilisateur. Netbeans a un excellente INTERFACE utilisateur concepteur construit en elle. Télécharger Netbeans ici.
OriginalL'auteur
GridBagLayout est vraiment ce que vous voulez utiliser. Le GridLayout force de la même taille pour chaque composant de la mise en page peu importe ce que les contraintes de taille vous mettez sur eux. GridBagLayout est beaucoup plus puissant et beaucoup plus compliqué. Étude sur l'API page. À l'aide de
GridBagLayout
, les composants ne seront pas remplir toute la grille de l'espace si vous ne le voulez pas et peut même rester la taille que vous demandez. Pour garder une taille du composant de changer, je mettrais tous les trois contraintes de taille:Pour vos boutons, je serais certainement utiliser un panneau intérieur comme Bryan mentionne. Vous pouvez utiliser soit un GridLayout, comme il le suggère ou un FlowLayout si vous ne souhaitez pas que tous les boutons soient de la même taille. Ajouter tous vos boutons pour que le panneau intérieur au lieu de la principale.
OriginalL'auteur Jay Sheridan
Si vous pouvez
setResizeable( false )
sur le cadre de niveau supérieur, vous pouvez ensuite définir votre gestionnaire de présentation à null et le code de chaque emplacement et la taille via setBounds. C'est la façon dont je le ferais (contingent sur le redimensionnement de cours).OriginalL'auteur javamonkey79
J'ai eu du succès dans la résolution de problèmes à l'aide de
TableLayout
qui est un tiers gestionnaire de présentation. Vous aurez besoin de télécharger et de lire le tutoriel, mais il est primordial de définir la justification de CENTRE lors de l'ajout de la JButtons à leurs positions dans la mise en page.OriginalL'auteur