Bonjour,
J'ai trouvé comment ajouter des components directement dans mon JTextpane.
Ce que j'aimerais faire c'est utiliser les css avec une page Html et ajouté directement un composent quand il trouve une balise de style définie.
Quelque essais sur ce code :
Le ce code effectue bien la modification et applique les styles.
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 HTMLEditorKit kit = new HTMLEditorKit();//kit s ur HTMLEditorKit HTMLDocument doc = (HTMLDocument) (kit.createDefaultDocument()); jTextPane1.setEditorKit(kit); jTextPane1.setDocument(doc); jTextPane1.setContentType("text/html"); StyleSheet css = kit.getStyleSheet(); css.addRule("body {align : left; background-color: #84A2E8;}"); css.addRule("body {font-size : 14pt; }"); css.addRule("body {font-family : Sans Serif; }"); css.addRule(".style1 { color: #999933; font-weight: bold;}"); css.addRule(".style2 { color: #009933; font-weight: bold;}"); css.addRule("div {margin-bottom: -20pt; }"); jTextPane1.addStyle("test1",null); StyleConstants.setComponent(jTextPane1.getStyle("test1"),new Button("ee")); StyleConstants.setComponent(css.getStyle(".style1"),new Button("ggg")); jTextPane1.setText("<html xmlns='http://www.w3.org/1999/xhtml'><head><title>Untitled Document</title></head>" + "<body><img src='http://www.google.fr/intl/fr_fr/images/logo.gif'><div align='center' class='style1'>cvvc</div></body></html>"); try { jTextPane1.addStyle("test1",null); StyleConstants.setComponent(jTextPane1.getStyle("test1"),new Button("ee")); doc.insertString(doc.getLength(),"cool",jTextPane1.getStyle("test1")); } catch (BadLocationException ex) { ex.printStackTrace(); }
Dans la suite du code je fait :
Pour ajouter a la fin de mon document un style qui inclu un component.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 jTextPane1.addStyle("test1",null); StyleConstants.setComponent(jTextPane1.getStyle("test1"),new Button("ee")); ... doc.insertString(doc.getLength(),"cool",jTextPane1.getStyle("test1"));
Si on reprend le code :
J'aimerais inclure directement le composent pour les styles 'style1' comme j'ai fait avec le insertString.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <html xmlns='http://www.w3.org/1999/xhtml'><head><title>Untitled Document</title></head>" + "<body><img src='http://www.google.fr/intl/fr_fr/images/logo.gif'><div align='center' class='style1'>cvvc</div></body></html>
Si vous avez une autre méthode plus simple, car le but et d'avoir un template, exemple une fenêtre de chat et remplace le nom de la personne par un composant Button...
Partager