IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

[swing] Créer un composant héritant de JComponent et ayant un comportement "natif"


Sujet :

Composants Java

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [swing] Créer un composant héritant de JComponent et ayant un comportement "natif"
    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 :
    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) {
        ...
      }
    }
    Je ne sais pas si ce que je demande est très clair, et si ce n'est pas le cas signalez le moi.

    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 !
    Dernière modification par sinok ; 11/04/2011 à 20h04. Motif: Ajout des balises [code][/code], merci d'y penser

Discussions similaires

  1. Créer un composant Swing qui bouge
    Par druzy dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 21/01/2013, 19h52
  2. Créer des composants JavaFX pour du Swing
    Par narmataru dans le forum JavaFX
    Réponses: 2
    Dernier message: 13/12/2011, 17h05
  3. [List] Créer mon composant
    Par soad dans le forum Composants
    Réponses: 3
    Dernier message: 02/12/2005, 08h00
  4. [vb.net] Impossible de créer le composant ActiveX [win98]
    Par arnolem dans le forum Windows Forms
    Réponses: 10
    Dernier message: 12/07/2005, 12h09
  5. Intercepter un Message Windows ? Créer un Composant Grille !
    Par TOTO32 dans le forum Composants VCL
    Réponses: 6
    Dernier message: 21/07/2004, 13h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo