tendu bouton dans le gridLayout
tout le monde, j'ai un problème avec Java, j'ai créé un panneau avec cinq lignes et une colonne, j'ai ajouté un bouton pour l'une des lignes, enfin j'ai ajouté ce panneau à l'image, et j'ai reçu le bouton qui est étirée pour full frame, puis-je réduire la taille du bouton, j'ai utilisé
myButton.setSize(10,10);
mais il ne semble pas fonctionner, aussi j'utilise
frame.pack();
peut il être le problème, merci d'avance
- vous pouvez poster l'ensemble de l'interface graphique de création de code?
Vous devez vous connecter pour publier un commentaire.
Vous devriez vous abstenir de réglage de la taille vous. Vous devez sélectionner le bon
LayoutManager
qui fait le travail pour vous.(Sauf si vous avez explicitement ne
setLayout(null)
les tailles vous seront supprimées et l'actuel directeur de disposition va attribuer de nouvelles tailles pour les composants.)Vous dire que vous êtes à l'aide d'un
GridLayout
. Cette mise en page est assez "unflexible", et si vous le souhaitez les avantages d'GridLayout
mais plus de souplesse, vous pouvez donnerGridBagLayout
un essai.Si vous ne trouvez pas un gestionnaire de mise en page qui vous convient, n'ayez pas peur d'écrire votre propre. (C'est relativement cinq méthodes faciles à mettre en œuvre.)
Si vous postez une capture d'écran de votre application en cours, et une explication sur la façon dont vous voulez qu'il ressemble, nous serons en mesure de vous aider.
Quelques liens utiles
Lorsque vous êtes à l'aide de gestionnaires de disposition (comme
GridLayout
) puis appelle àsetSize()
généralement ne fonctionnent pas, parce que le layout manager décide finalement comment la taille et le lieu de chaque composant dans un conteneur.Ce que vous pouvez faire est d'appeler
setPreferredSize()
,setMaximumSize()
et/ousetMinimumSize()
. Selon le directeur de disposition dans l'utilisation d'un ou de plusieurs de ces demandes (parce que c'est vraiment ce qu'ils sont) seront à l'honneur. Lorsque vous appelezframe.pack()
il va essayer de taille tout dans le conteneur (et les sous-conteneurs) pour leur choix de tailles.Donc, dans votre cas, l'appel de
myButton.setPreferredSize (10, 10);
fonctionnera probablement. Cependant, il faudra encore être redimensionnée si le conteneur des changements de taille. Si vous ne voulez pas que, il y a d'autres solutions, je peux poster.Quand aloobe semble avoir une façon plus générale la solution pour vous. Je dirais que la solution serait d'ajouter le bouton à une Composite, définir le Layoutmanager une mise en page comme GridLayout, ou un autre LayoutManager, si vous trouvez un autre qui vous convient mieux.
Et ajouter ce panneau à votre panneau d'origine, en lieu et place du bouton.