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 :

Ajout d'une balise HTML dans un JTextPane


Sujet :

AWT/Swing Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Ajout d'une balise HTML dans un JTextPane
    Bonjour,

    Je suis en train de créer un petit éditeur html, je suis en possession d'un JTextPane dans lequel a été intégré HTMLEditorKit.

    Je peux donc taper du texte dans cette case et j'aimerai lorsque je clique sur un bouton que le texte sélectionné se mette en gras.

    Voici ce que j'ai fait :
    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
     
                    tnews = new JTextPane();
            tnews.setPreferredSize(new Dimension(300,300));
              HTMLEditorKit htmlKit = new HTMLEditorKit();
            tnews.setEditorKit(htmlKit);
            tnews.setText("Texte ecrit dans ma case");
     
     
            scroll = new JScrollPane(tnews);             
            pnews.add(scroll);
     
     
     
    pboutons = new JPanel();pcontenu.add(pboutons,BorderLayout.NORTH);
    bgras = new JButton("gras");pboutons.add(bgras);
    bgras.addActionListener(this);
     
     
     
    ////////////////////// et c'est à partir d'ici que tout va mal
     
                if (e.getSource() == bgras)
            {
     
                  try 
                  {
                      tnews.getDocument().insertString(3, "<b>",  null);
                  } 
                  catch (BadLocationException e1) {e1.printStackTrace();}
     
            }

    Dans cet exemple le problème est que à la place de prendre en compte la balise, il m'inscrit dans la case "<b>".


    Comment dois-je m'y prendre ?


    Merci d'avance


    Adriien

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Ma question est-elle mal posée ou bien personne ne détient la réponse ?


    Adrien

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Points : 96
    Points
    96
    Par défaut
    Je suis moi même en train de créer un éditeur, j ai ressemant fait la même demande.

    essaie avec ça, moi sa fonctionne.

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if (e.getSource() == bgras) { 	
      int start = editeur.getSelectionStart();
      int end = editeur.getSelectionEnd();
      StyledDocument _doc = editeur.getStyledDocument();
      try {
      _doc.insertString(end, "</gras>", _doc.getLogicalStyle(end));
      _doc.insertString(start, "<gras>", _doc.getLogicalStyle(start));
      } 
      catch (BadLocationException ev) {
      ev.printStackTrace();
      }	
    }

    editeur est la variable de ton JTextPane.

    Bon courage.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    J'ai essayé avec le code que tu me propose et le problème reste toujours le même.
    Dans mon JTextPane est inséré "<gras>" et </gras>, certes au bon endroit mais c'est du texte qui est ajouté et aucune mise en forme (gras) n'est opérée.


    Adrien

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    En faisant un petit mix entre les différentes informations trouvées un peu partout, j'ai réussi à atteindre mon objectif.

    Voici le code pour ceux que ça intéresserait :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if (e.getSource() == bgras)
    		{
    			  int start = tnews.getSelectionStart();
    			  int end = tnews.getSelectionEnd();
    			  StyledDocument _doc = tnews.getStyledDocument();
    			  MutableAttributeSet attrs = tnews.getInputAttributes();
    			  StyleConstants.setBold(attrs, true);  
    			  _doc.setCharacterAttributes(start,end-start,attrs, false);	
    			  System.out.println(tnews.getText());
    		}

    merci encore

    Adrien

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

Discussions similaires

  1. [Aide Java] Balise html dans un JTextPan
    Par Invité dans le forum Langage
    Réponses: 10
    Dernier message: 01/12/2011, 19h05
  2. [RegEx] fonction d'ajout d'attribut dans une balise html
    Par the magic developer dans le forum Langage
    Réponses: 4
    Dernier message: 30/10/2008, 12h48
  3. afficher une page html dans un jtextpane
    Par fievel dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 15/03/2006, 17h36
  4. [XSL] Passer une variable a une balise HTML dans un fichier
    Par poseidon2 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 09/03/2006, 16h39
  5. Impression d'une page HTML dans un JTextPane
    Par sozie9372 dans le forum Composants
    Réponses: 1
    Dernier message: 06/12/2005, 03h22

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