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 :
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 ?
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); } }
Partager