Bonjour à toute la communauté Developpez !
Si je viens ici c'est que j'ai un problème depuis plusieurs semaines et que je n'arrive pas à le résoudre, je ne trouve rien sur le net qui répond à ma question.
Pour les besoins d'un projet scolaire, un jeu en l'occurence, je suis chargé de developper un certain nombre de composants spécifiques à nos besoins.
J'ai bien suivi beaucoup de tutoriels Swing et son utilisation m'est désormais familière, sans que j'en sois pour autant un expert, loin de la. J'ai appris les bases et l'utilisation, mais je ne sais pas réellement comment fonctionne Swing en arrière plan.
Dans mon cas par exemple, j'ai besoin de créer un bouton personnalisé, qui comprendrait une image bien sur, mais aussi une image pour quand celui-ci à le focus etc... Bien sur ce composant doit être général pour être réutilisé à plusieurs endroits différents en changeant juste l'image dans le constructeur.
La n'est pas le problème, ce que je n'arrive pas à gérer est la taille du composant pour notamment les redimensionnements.
Dans l'idéal, la taille maximum et préférée du composant est la taille de l'image passée en paramètre, cependant si la taille disponible est inférieure il faudrait que le bouton se redimensionne comme il faut. Or, dans les méthodes que j'ai implémentées, soit le composant ne change jamais de taille et reste fixe, soit sa taille passe à 0, soit il n'a pas la taille qu'il devrait avoir.
Pour exemple voici grossièrement ma classe :
Je ne sais pas si ce que je demande est très clair, et si ce n'est pas le cas signalez le moi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 public class MButton extends JComponent { protected Image image; public MButton(Image image) { super(); this.image = image; this.setSize(this.image.getWidth(), this.image.getHeight()); } public Dimension getPreferredSize() { return new Dimension (this.getWidth(), this.getHeight()); } public Dimension getminimumSize() { return this.getPreferredSize(); } public Dimension getmaximumSize() { return this.getpreferredSize(); } public void paintComponent(Graphics g) { ... } }
En tous cas j'aimerais savoir si cette classe à un fonctionnement 100% fonctionnel avec Swing, et si non pourquoi. En tous cas si elle l'a je devrais chercehr mon erreur ailleurs.
Merci à tous, bonne soirée !
Partager