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 :

Coloration syntaxique [Trucs & Astuces]


Sujet :

Composants Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 42
    Points : 44
    Points
    44
    Par défaut Coloration syntaxique
    Bonjour,

    j'aimerais pouvoir colorer certaines parties de fichiers lorsque je les affiches dans un composants. Ces fichiers texte respectent une syntaxe précise, avec des marqueurs en début de ligne et/ou de paragraphe.

    J'aimerais, selon ces différents marquers, afficher une ligne d'une couleur différente (un peu à la façon dont sont les IDE traitent les lignes de commentaire des codes sources). En regardant dans la doc, il est dis qu'il faut utiliser un JEditorPane ou un JTextPane, mais je n'arrive pas à me servir des documents modèles sur lesquels ces composants se basent. Quelqu'un pourrait-il m'aider ??

  2. #2
    Membre actif
    Avatar de mathk
    Inscrit en
    Décembre 2003
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 211
    Points : 233
    Points
    233
    Par défaut
    J'ai eu le même pb que toi et voici ma solution
    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
    48
    49
    50
    51
    52
    53
    54
    55
      public synchronized void setColorOnEdit()
      {
        String str = edit.getText();
        boolean comment = false;
        boolean isSelected = false;
        int start = 0;
        int stop = 0;
        for (int i=0; i < str.length(); i++)
        {
          if (!isSelected)
          {
            if(str.regionMatches(i, "<!--", 0, 4))
            {
              comment = true;
              isSelected = true;
              start = i;
              if (stop < start)
              {
                DefaultStyledDocument dsd = (DefaultStyledDocument)edit.getDocument();
                dsd.setCharacterAttributes(stop, start, BLACK, false);
              }
     
            }
            else if (str.regionMatches(i, "<", 0, 1) && !comment)
            {
              isSelected = true;
              start = i;
              if (stop < start)
              {
                DefaultStyledDocument dsd = (DefaultStyledDocument)edit.getDocument();
                dsd.setCharacterAttributes(stop, start, BLACK, false);
              }
            }
     
          }
          else
          {
              if (str.regionMatches(i, "-->", 0, 3))
              {
                isSelected = false;
                DefaultStyledDocument dsd = (DefaultStyledDocument)edit.getDocument();
                dsd.setCharacterAttributes(start, i+1 - start, ITALIC_GRAY, false);
                stop = i+1;
                comment = false;
              }
              else if (str.regionMatches(i, ">", 0, 1) && !comment)
              {
                isSelected = false;
                DefaultStyledDocument dsd = (DefaultStyledDocument)edit.getDocument();
                dsd.setCharacterAttributes(start, i+1 - start, BLUE, false);
                stop = i+1;
              }
          }
        }
      }
    Bon eller bonne année chao (chai pas si ca peut t'aider)
    Si grande est la faiblesse d'une âme, dont la raison est partie!
    Ne jamais embrouiller ni abasourdir par une foule d'images le génie intérieur qui réside au fonde de sa poitrine,...
    L'ambition est le rfuge de l'échec. "Oscar Wild"

  3. #3
    Membre actif Avatar de amaury pouly
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 157
    Points : 224
    Points
    224
    Par défaut re
    Salut,
    où tu trouve ITALIC, BLUE, BLACK etc... ?

  4. #4
    Membre actif
    Avatar de mathk
    Inscrit en
    Décembre 2003
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 211
    Points : 233
    Points
    233
    Par défaut
    A voui :
    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
     
    class a extends JFrame
    {
         private SimpleAttributeSet BLUE = new SimpleAttributeSet();
         private SimpleAttributeSet ITALIC_GRAY = new SimpleAttributeSet();
         private SimpleAttributeSet BLACK = new SimpleAttributeSet();
         private SimpleAttributeSet BROWN = new SimpleAttributeSet();
         ....
         construecteur
         {
          StyleConstants.setForeground(ITALIC_GRAY, Color.gray);
          StyleConstants.setItalic(ITALIC_GRAY, true);
          StyleConstants.setFontFamily(ITALIC_GRAY, "Helvetica");
          StyleConstants.setFontSize(ITALIC_GRAY, 14);
     
          StyleConstants.setForeground(BLACK, Color.black);
          StyleConstants.setFontFamily(BLACK, "Helvetica");
          StyleConstants.setFontSize(BLACK, 14);
     
          StyleConstants.setForeground(BLUE, Color.blue);
          StyleConstants.setFontFamily(BLUE, "Helvetica");
          StyleConstants.setFontSize(BLUE, 14);
     
          StyleConstants.setForeground(BROWN, Color.orange);
          StyleConstants.setFontFamily(BROWN, "Helvetica");
          StyleConstants.setFontSize(BROWN, 14);
          StyleConstants.setBold(BROWN, true);
         }
    }
    Si grande est la faiblesse d'une âme, dont la raison est partie!
    Ne jamais embrouiller ni abasourdir par une foule d'images le génie intérieur qui réside au fonde de sa poitrine,...
    L'ambition est le rfuge de l'échec. "Oscar Wild"

  5. #5
    Membre actif Avatar de amaury pouly
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 157
    Points : 224
    Points
    224
    Par défaut re
    Merci

Discussions similaires

  1. [C#] Coloration syntaxique !
    Par UNi[FR] dans le forum Windows Forms
    Réponses: 8
    Dernier message: 08/04/2009, 09h37
  2. Coloration syntaxique
    Par iubito dans le forum Evolutions du club
    Réponses: 73
    Dernier message: 02/11/2005, 10h01
  3. Coloration syntaxique des éditeurs linux
    Par knecmotet dans le forum Applications et environnements graphiques
    Réponses: 8
    Dernier message: 08/12/2004, 00h09
  4. [debutant] coloration syntaxique
    Par demostene dans le forum Eclipse Java
    Réponses: 7
    Dernier message: 30/06/2004, 15h16
  5. Coloration syntaxique ASM dans un RichEdit
    Par Crick dans le forum Composants VCL
    Réponses: 5
    Dernier message: 20/12/2002, 01h53

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