L'utilisation dépend du fait que le parent du composant dispose ou non d'un gestionnaire de disposition.
setSize()
- à utiliser lorsqu'un gestionnaire de mise en page parent n'existe pas;
setPreferredSize()
(également son associé setMinimumSize
et setMaximumSize
) - à utiliser lorsqu'un gestionnaire de mise en page parent existe.
La setSize()
méthode ne fera probablement rien si le parent du composant utilise un gestionnaire de disposition; les endroits cela généralement un effet serait sur les composants de niveau supérieur ( JFrame
s et JWindow
s) et les choses qui sont à l' intérieur des vitres défilées. Vous devez également appeler setSize()
si vous avez des composants à l'intérieur d'un parent sans gestionnaire de disposition.
Généralement, setPreferredSize()
disposera les composants comme prévu si un gestionnaire de disposition est présent; la plupart des gestionnaires de mise en page travaillent en obtenant les tailles préférées (ainsi que les tailles minimales et maximales) de leurs composants, puis en utilisant setSize()
etsetLocation()
pour positionner ces composants selon les règles de la mise en page.
Par exemple, a BorderLayout
essaie de rendre les limites de sa région "nord" égales à la taille préférée de son composant nord --- elles peuvent finir par être plus grandes ou plus petites que cela, selon la taille du JFrame
, la taille des autres composants dans la mise en page, et ainsi de suite.
setSize()
ousetBounds()
peut être utilisé lorsqu'aucun gestionnaire de disposition n'est utilisé.Cependant, si vous utilisez un gestionnaire de mise en page, vous pouvez fournir des conseils au gestionnaire de mise en page en utilisant des
setXXXSize()
méthodes tellessetPreferredSize()
quesetMinimumSize()
etc.Et assurez-vous que le conteneur du composant utilise un gestionnaire de disposition qui respecte la taille demandée. Le
FlowLayout
,GridBagLayout
et lesSpringLayout
gestionnaires utilisent la taille préférée du composant (les deux derniers en fonction des contraintes que vous avez définies), maisBorderLayout
etGridLayout
généralement don't.If vous spécifiez de nouvelles indications de taille pour un composant qui est déjà visible, vous devez appeler la méthode revalidate sur pour s'assurer que sa hiérarchie de confinement est à nouveau mise en place. Appelez ensuite la méthode repeindre.la source
setSize
redimensionnera le composant à la taille spécifiée.setPreferredSize
définit la taille préférée. Le composant peut ne pas avoir réellement cette taille en fonction de la taille du conteneur dans lequel il se trouve ou si l'utilisateur a redimensionné manuellement le composant.la source
IIRC ...
setSize
définit la taille du composant.setPreferredSize
définit la taille préférée. Le Layoutmanager essaiera d'organiser autant d'espace pour votre composant.Cela dépend si vous utilisez un gestionnaire de mise en page ou non ...
la source