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 :

drawString et "\n" ou new line dans Awt


Sujet :

AWT/Swing Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 37
    Points : 29
    Points
    29
    Par défaut drawString et "\n" ou new line dans Awt
    Bonjour,

    Comment faire apparaitre le "retour à la ligne" , \n, stocké dans un champ Mysql avec la méthode drawString pour dessiner sur un JPanel??

    g2.drawString(champVarchardeMysql, x, y);

    Cette fonction ne fait pas apparaître les sauts de ligne.

    Merci ( ça fait 15 jours que je cherche)

  2. #2
    Membre habitué
    Inscrit en
    Décembre 2005
    Messages
    251
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 251
    Points : 143
    Points
    143
    Par défaut
    Salut je sais pas comment faire. Mais essaye de filtrer à l'entrée de drawString. C'est à dire de mettre une condition du type :
    if(varMysql.equals("\n")){g2.drawString("tutut");}
    else{g2.drawString(varMysql);}
    Enfin je suppose que tu y as dejà pensé mais bon....

    Bon courrage

  3. #3
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    La méthode drawString() dessine les caractères. Un caractère \n n'a aucune signification particulière en tant que tel, tu dois donc gérer ces sauts toi-même.
    Romain Guy
    Android - Mon livre - Mon blog

  4. #4
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 37
    Points : 29
    Points
    29
    Par défaut StringTokenizer
    Trouvé

    Grâce à StringTokenizer :

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     public void drawParagraph(String aParagraph, float aY, Graphics2D g2) {
                    // TODO Auto-generated method stub
                    if (aParagraph != null) {
                        float drawPosY = aY + 20;
                        FontRenderContext fontcontext=g2.getFontRenderContext();
                        //map = new Hashtable();
                        //map.put(TextAttribute.FONT,new Font ("Serif",Font.ITALIC,14));
     
                        StringTokenizer sttok=new StringTokenizer(aParagraph,"\n\r\t");
     
                        while (sttok.hasMoreTokens()){//while
                            AttributedString aAttributes = new AttributedString(sttok.nextToken(),map);
                            AttributedCharacterIterator iteparagraph = aAttributes.getIterator();
                            int paragraphStart = iteparagraph.getBeginIndex();
                            int paragraphEnd = iteparagraph.getEndIndex();
     
                            LineBreakMeasurer lineMeasurer = new LineBreakMeasurer(
                            iteparagraph,fontcontext);
                            lineMeasurer.setPosition(paragraphStart);
                            while (lineMeasurer.getPosition() < paragraphEnd) {//while
                                TextLayout layout = lineMeasurer.nextLayout(Fiche.layoutLength);
     
                                // Move y-coordinate by the ascent of the layout.
                                drawPosY += layout.getAscent();
     
     
                                /* * Compute pen x position. If the paragraph is right-to-left, we
                                 * want to align the TextLayouts to the right edge of the panel.*/
     
                                float drawPosX;
                                if (layout.isLeftToRight()) {drawPosX = 10;}
                                else {drawPosX = 80 - layout.getAdvance();}
     
                                // Draw the TextLayout at (drawPosX, drawPosY).
                                layout.draw(g2, drawPosX, drawPosY);
     
                                // Move y-coordinate in preparation for next layout.
                                drawPosY += layout.getDescent() + layout.getLeading();
                                fY = drawPosY;
                                Yf = new Float(fY);
                            }//while
                        }//while
                        fY = drawPosY;
                        Yf = new Float(fY);
     
                    }
         }

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

Discussions similaires

  1. [C#] Tab, et new line dans une TextBox ou un Label
    Par papouAlain dans le forum Windows Forms
    Réponses: 2
    Dernier message: 23/06/2006, 17h32

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