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

AWT/Swing Java Discussion :

[ToolTipText] Comment modifier la taille des infos bulles ?


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Points : 99
    Points
    99
    Par défaut [ToolTipText] Comment modifier la taille des infos bulles ?
    Bonjour !

    je rencontre un problème, lorsque j'affiche une info bulle à l'aide de setToolTipText("mon info bulle") l'info bulle est sur une seule ligne..

    Comment puis je faire pour définir une taille à l'info bulle, en fonction du texte que j'ai dedans ?

    d'avance merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Points : 99
    Points
    99
    Par défaut
    au fait je voulais préciser qu'avec des \n ça marche pas..

    par contre je viens de m'apercevoir qu'avec du html ça marche :
    http://java.sun.com/developer/onlineTraining/new2java/supplements/2005/Feb05.html

    ça peut être une solution, mais pas vraiment parce que le texte que je mettrais dans mes infos bulles ne sera pas pré formaté en balises html..

    alors si quelqu'un a une solution à me proposer ..

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Points : 99
    Points
    99
    Par défaut
    Finalement je me suis débrouillé tout seul, mais j'ai décidé de vous partager mon code parce que je suis sympa et vous aussi..

    Bon il s'agit de surcharger la méthode createTollTip() de la classe JComponent, donc quelque part dans votre classe qui hérite de JComponent vous mettez :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
       // surcharge la méthode createToolTip de la classe JComponent
        public JToolTip createToolTip() {
            JToolTip toolTip =  new JToolTip();
            toolTip.setComponent(this);
            Dimension maDim = getToolTipPreferredSize(this.getToolTipText());
            toolTip.setPreferredSize(maDim);
            return toolTip;
        }
     
        // permet de calculer la taille du ToolTip en fonction du texte qui est dedans, avec une largeur maximum définit par largeur_max
        // Le texte ne doit pas comporter de balises html (sauf <html> au début et </html> à la fin)
        public Dimension getToolTipPreferredSize(String text) {
            // On définit ici la largeur maximum du ToolTip désirée
            int largeur_max = 300;
            // Calcul de la taille du ToolTip
            if ( text == null ) return new Dimension(0,0);
            Graphics g = this.getGraphics();
            FontMetrics fm = g.getFontMetrics();
            int h = fm.getHeight();
            int w = 8;
            if (text != null) {
                if (fm.stringWidth(text) < largeur_max) {
                    w += fm.stringWidth(text) - fm.stringWidth("<html></html>");
                }
                else {
                    w += largeur_max;
                    double nb_h = Math.ceil((((float)fm.stringWidth(text)- (float)fm.stringWidth("<html></html>")) / (float)largeur_max));
                    h += (int)nb_h * h;
                   }
            }
            return new Dimension(w,h);
        }
    et lorsque vous faites appel au tooltip, vous mettez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monObjet.setToolTipText("<html>" + "votre texte dans l'info bulle" + "</html>");
    Remarque : dans mon code, j'utilise les balises html pour le retour à la ligne ce qui n'est pas l'idéal. Il faudrait en fait améliorer le calcul de la taille en gérant soi même les retours à la ligne mais bon déjà pour commencer c'est bien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Modifier la taille des bulles dans un graphe à bulles
    Par keepcalm dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/06/2014, 11h41
  2. [Débutant] Comment modifier la taille des points dans une legende ?
    Par stodak dans le forum MATLAB
    Réponses: 4
    Dernier message: 28/03/2012, 17h36
  3. [Lazarus] Comment modifier la taille des fiches
    Par ovni76 dans le forum Lazarus
    Réponses: 4
    Dernier message: 16/06/2011, 23h29
  4. comment insérer des info bulles avec c#
    Par meetsmile dans le forum C#
    Réponses: 5
    Dernier message: 20/04/2011, 14h11
  5. Réponses: 3
    Dernier message: 31/01/2008, 10h09

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