Bonjour,
J'ai un JTextPane qui contient de l'html. Je veux pouvoir changer la couleur d'un mot du texte SANS avoir à selectionner ce mot. Le texte est parcouru mot par mot et quand on rencontre le bon (c'est a dire quand on rencontre un mot contenu dans la base de données), sa couleur doit changer. Pourriez vous m'aider?
Code :
- ...
- public HTMLEditorKit k = new HTMLEditorKit();
- public HTMLDocument doc = (HTMLDocument)k.createDefaultDocument();
- ...
- zone_texte = new JTextPane ();
- zone_texte.setContentType("text/html" );
- zone_texte.setEditable (true);
- zone_texte.setEditorKit(k);
- zone_texte.setDocument(doc);
- ...
- public void itemStateChanged(ItemEvent e) {
- ...
- String contenu = zone_texte.getText();
- StringTokenizer st = new StringTokenizer(contenu," ,;." );
- while (st.hasMoreTokens()) {
- String token = st.nextToken();
- if (source == checkbox1) {
- ResultSet rs = statement.executeQuery("select * from table1" );
- while(rs.next()){
- String s = rs.getString("name" );
- if (s.equalsIgnoreCase(token)){
- zone_texte.setText("<font color=\"0000ff\"><%=token></font>" );
- //à l'execution, ça ecrit %=token en bleu
- //et il n'y a plus le texte original à cause du setText()
- //je voudrais que le texte original apparaisse toujours
- //et que le mot correspondant au token (et non pas le mot token)soit ecrit en bleu
- }
- }
- }
- ...
- }
- ...
- }
|
merci de votre aide