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 :

[ToolTip] Problème avec le caractère "\n"


Sujet :

AWT/Swing Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 137
    Par défaut [ToolTip] Problème avec le caractère "\n"
    Bonjour. J'ai un String pouvant contenir le caractère "\n" ( le String est récupéré d'un JTextArea éditable par l'utilisateur).
    Ce String doit être placé en toolTip sur un autre composant.
    Malheureusement, il semblerait que le tooltip ignore ce caractère :

    si le String vaut =
    "coucou
    coucou 2",

    le toolTip affiché sera : "coucoucoucou2".

    Comment faire ?

    PS : je sais que je pourrai passer par du HTML, mais je pense que ca ferait un peu lourd, vu que c'est juste pour un tooltip.
    De plus, je pense que si ca pose problème avec "\n", il y aura surement des problèmes avec "\t", ...

  2. #2
    Membre émérite
    Avatar de c-top
    Profil pro
    Turu
    Inscrit en
    Septembre 2003
    Messages
    972
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Turu

    Informations forums :
    Inscription : Septembre 2003
    Messages : 972
    Par défaut
    Il faut que tu serves des balises HTML
    string s = "<html> coucou <br> coucou2</html>";

  3. #3
    Membre expérimenté
    Inscrit en
    Septembre 2003
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 174
    Par défaut
    perso, j'utilise le Html meme pour les ToolTips ... ce n'est pas si lourd que ca et tu peux formater relativement facilement tes textes.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 137
    Par défaut
    J'ai essayé de faire une méthode pour transformer la chaine en html :


    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
    String createHtmlFromString( String laChaine )
    {
     
       StringBuffer stringBuffer = new StringBuffer("<html>");
     
     
      laChaine.replaceAll("\n", "<br>");    // Remove all \n
      laChaine.replaceAll("\r", "<bq>");  // Replace \n by \r
     
      stringBuffer.append( laChaine );
     
       stringBuffer.append("</html>");
     
    return stringBuffer.toString();
     
    }
    Mais les chaines "\n" et "\r" ne sont pas remplacées.
    String de départ :
    ligne 1
    ligne 2

    A l'arrivée :
    <html<ligne1
    ligne 2</html>
    et donc quand je l'affiche, les 2 lignes sont toujous accolées ...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 154
    Par défaut
    Vérifie si la méthode replaceAll ne renvoie pas une String qui serait le résultat.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 137
    Par défaut
    De plus, je viens de créer un stringtokenizer dessus, mais rien n'est affiché :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    StringTokenizer st = new StringTokenizer( machaine,"\n");
         while (st.hasMoreTokens()) {
             System.out.println(st.nextToken());
         }
    Il semblerait donc que le \n ne soit pas dans la chaine.

    Alors comment fait le textarea pour sauter à la ligne quand on appuie sur la touche Entrée ???

  7. #7
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 35
    Par défaut
    Sinon chErche le code unicode (de la forme \uxxx) de \n et \r et refais la même chose

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 137
    Par défaut
    Bien joué Tiaps !!
    Je pensais que la méthode modifiait également le String sur lequel elle s'appliquait, mais non.

    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maChaine = maChaine.replaceAll( ... )
    et hop !! ca marche.

    Merci pour vos réponses

  9. #9
    Membre averti
    Inscrit en
    Août 2003
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 32
    Par défaut
    Ne pas oublier qu'une String ne peut JAMAIS être modifiée : toute modif sur une String génère une autre String.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/07/2009, 14h46
  2. Formulaires : problème avec les slashes et les quotes
    Par GarGamel55 dans le forum Langage
    Réponses: 1
    Dernier message: 12/10/2005, 15h59
  3. problème avec le caractère saut de ligne ...
    Par vbcasimir dans le forum Administration
    Réponses: 2
    Dernier message: 17/06/2004, 16h35

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