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 :

probleme de mise en forme avec le JEditorPane


Sujet :

Composants Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 130
    Par défaut probleme de mise en forme avec le JEditorPane
    Bonjour depuis un moment j'essaye de mettre en forme du texte, j'ai essayé le JEditorPane sans succès, puis le JTextPane sans plus c'est pourquoi je m'adresse à vous. J'essaye de faire un simple editeur de texte, on entre le texte, et on selectionne le texte a mettre en forme voici ce que j'ai en m'appuyant sur diverses réponses de ce forum ce qui ne m'aide pas beaucoup :
    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
     
    package app;
     
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextPane;
    import javax.swing.JToolBar;
    import javax.swing.text.BadLocationException;
    import javax.swing.text.SimpleAttributeSet;
     
    public class EditorPane extends JFrame 
    {
    	private static final long serialVersionUID = 5061819212845049159L;
     
    	private JToolBar tb = new JToolBar();
    	private JButton bg = new JButton("gras");
     
    	private JPanel pan = new JPanel(new BorderLayout());
    	private JTextPane ed = new JTextPane();
     
    	public EditorPane()
    	{
    		this.setTitle("Test EditorPane");
    		this.setContentPane(pan);
     
    		//la barre
    		pan.add(tb, BorderLayout.NORTH);
    		tb.add(bg);
     
    		bg.addActionListener(new ActionBouton(ed, "b"));
     
    		//le texte
    		pan.add(ed, BorderLayout.CENTER);
    		ed.setPreferredSize(new Dimension(300,400));
     
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.pack();
    		this.setLocationRelativeTo(null);
    	}
     
    	class ActionBouton implements ActionListener 
    	{
    		private JTextPane ed;
    		private String balise;
     
    		public ActionBouton(JTextPane ed, String balise) 
    		{
    			this.ed = ed;
    			this.balise = balise;
    		}
     
    		@Override
    		public void actionPerformed(ActionEvent e) 
    		{
    			String ch = ed.getSelectedText();
    			int deb = ed.getSelectionStart();
     
    			SimpleAttributeSet att = new SimpleAttributeSet();
    			att.addAttribute(balise, ch);
     
    			try 
    			{
    				ed.getDocument().insertString(deb, ch, null);
    				ed.select(deb, ch.length());
    		        ed.setCharacterAttributes(att, true);
    			} 
    			catch (BadLocationException e1) 
    			{
    				e1.printStackTrace();
    			}
     
    			ed.setText(ed.getText());
    		}
    	}
     
    	public static void main(String[] args) 
    	{
    		EditorPane ed = new EditorPane();
    		ed.setVisible(true);
    	}
    }
    dans ce code le texte que je veux mettre en gras est juste recopié sans être mis en forme. Bref avez des suggestions a faire ?

  2. #2
    Invité de passage
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 1
    Par défaut
    Pour mettre en gras du texte, je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SimpleAttributeSet style = new SimpleAttributeSet();
    StyleConstants.setBold(style, true);
    try{
    doc.insertString(doc.getLength(), texte, style);
    }catch (BadLocationException e){
    }
    Peut-être cela pourra fonctionner ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 130
    Par défaut
    merci beaucoup pour l'aide comme c'est difficile de trouver des solutions complete sur le net donc voici ce que j'ai :

    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    package app;
     
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.IOException;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextPane;
    import javax.swing.JToolBar;
    import javax.swing.text.BadLocationException;
    import javax.swing.text.Document;
    import javax.swing.text.SimpleAttributeSet;
    import javax.swing.text.StyleConstants;
     
    public class EditorPane extends JFrame 
    {
    	private static final long serialVersionUID = 5061819212845049159L;
     
    	private JToolBar tb = new JToolBar();
    	private JButton bg = new JButton("gras");
     
    	private JPanel pan = new JPanel(new BorderLayout());
    	private JTextPane ed = new JTextPane();
     
    	public EditorPane()
    	{
    		this.setTitle("Test EditorPane");
    		this.setContentPane(pan);
     
    		//la barre
    		pan.add(tb, BorderLayout.NORTH);
    		tb.add(bg);
     
    		bg.addActionListener(new ActionBouton(ed));
     
    		//le texte
    		pan.add(ed, BorderLayout.CENTER);
    		ed.setPreferredSize(new Dimension(300,400));
    		ed.setText("Salut comment ca va ?");
     
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.pack();
    		this.setLocationRelativeTo(null);
    	}
     
    	class ActionBouton implements ActionListener 
    	{
    		private JTextPane ed;
     
    		public ActionBouton(JTextPane ed) 
    		{
    			this.ed = ed;
    		}
     
    		@Override
    		public void actionPerformed(ActionEvent e) 
    		{
    			SimpleAttributeSet style = new SimpleAttributeSet();
    			StyleConstants.setBold(style, true);
    			try
    			{
    				Document doc = ed.getDocument();
    				doc.insertString(ed.getSelectionStart(), ed.getSelectedText(), style);
    				doc.remove(ed.getSelectionStart(), ed.getSelectedText().length());//cette partie sert a supprimer le texte non formaté ainsi il ne reste que le texte formaté
    			}
    			catch (BadLocationException e1)
    			{
    				e1.printStackTrace();
    			}
    		}
    	}
     
    	public static void main(String[] args) 
    	{
    		EditorPane ed = new EditorPane();
    		ed.setVisible(true);
    	}
    }

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/11/2010, 11h13
  2. Probleme de mise en forme avec Listener Keyboard
    Par Kefass dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 11/12/2008, 17h53
  3. Probleme de mise en forme avec DIV et CSS
    Par freesurfer dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 09/02/2007, 15h26
  4. [Librairies] fichier cvs; problème de mise en forme
    Par illegalsene dans le forum CVS
    Réponses: 3
    Dernier message: 19/10/2005, 15h35
  5. Mise en forme avec Netscape et Mozilla
    Par seb30 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 18/10/2004, 10h18

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