Je crée un composant Swing personnalisé qui hérite de JPanel.Obtention d'un comportement de dimensionnement correct dans un composant Swing personnalisé
Quelle est la bonne façon de passer outre/mettre en œuvre les différentes méthodes de dimensionnement (getPreferredSize, setPreferredSize, getMinimumSize etc.) afin d'obtenir un « bon comportement », en particulier en ce qui concerne:
- Travailler avec une présentation différente gestionnaires
- correctement lorsque setPreferredSize Behaving() est appelée
- Réagissant de façon appropriée lorsqu'une frontière est réglée par setBorder()
Merci! On dirait que je peux directement hériter de JComponent dans certains cas, dans d'autres cas j'ai un composite donc j'ai besoin de JPanel. Existe-t-il des instructions sur la façon d'implémenter getPrefferedSize, getMinimumSize etc? La raison principale est que l'interaction entre ceux-ci et setPreferredSize, setBorder etc. semble potentiellement très complexe ..... – mikera
C'est ce que l'API JComponent dit: "Si le preferredSize a été mis à une valeur non nulle, il suffit de le retourner. La méthode getPreferredSize du délégué de l'interface utilisateur renvoie une valeur non nulle, puis la renvoie, sinon, elle se rapporte au gestionnaire de disposition du composant. Mais IMO qui dépend beaucoup de LAF. Je suggère donc d'implémenter des tailles dans les délégués de votre interface utilisateur puis de les déléguer aux délégués de l'interface utilisateur :) En ce qui concerne les bordures, les trois tailles doivent inclure la taille de la bordure, donc ne vous inquiétez pas. –
Voici un très bon article sur les composants personnalisés écrits par Kirrill: http://today.java.net/article/2007/02/19/how-write-custom-swing-component –