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 ?