La réponse courte est: "c'est compliqué.
La réponse plus précise: utiliser setSize()
si vos parent du composant n'a pas de gestionnaire de mise en page, et setPreferredSize()
ses setMinimumSize
et setMaximumSize
si elle n'.
setSize()
ne sera probablement pas faire quoi que ce soit si le parent du composant est à l'aide d'un gestionnaire de mise en page; les lieux ce sera généralement d'avoir un effet sur le haut niveau des composants (JFrames
et JWindows
) et les choses qui sont à l'intérieur de l' scrolled panes
. Vous devez également appeler setSize()
si vous avez des composants à l'intérieur d'un parent sans un gestionnaire de présentation.
En règle générale, setPreferredSize()
devrait faire la "bonne chose" si vous avez un gestionnaire de mise en page; la plupart des gestionnaires de disposition de travail par l'obtention de l'privilégiées (minimum et maximum) tailles de leurs composants, et ensuite à l'aide d' setSize()
et setLocation()
à la position de ces composants en fonction de la disposition du règlement. Donc (par exemple) un BorderLayout
va essayer de rendre les limites de son "nord" de la région de l'égalité à l' preferred size
de sa composante nord - ils vont peut-être plus grand ou plus petit que cela, en fonction de la taille de l' jframe
, la taille les autres éléments de la mise en page, et ainsi de suite.