Bonjour,

J'ai un JTextPane que j'initialise comme cela
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
        this.txtPane.setContentType("text/html");
        this.txtPane.setFont(new Font("Arial", Font.PLAIN, 14));
        this.doc = new MyHTMLDocument();
        this.txtPane.setDocument(this.doc);
        this.editorKit = (StyledEditorKit)this.txtPane.getEditorKit();
        this.undo = new UndoManager();
        this.doc.addUndoableEditListener(new UndoableEditListener() {
            @Override
            public void undoableEditHappened(UndoableEditEvent e) {
                undo.addEdit(e.getEdit());
            }
        });
Plus tard, dans mon code, je modifie la couleur de fond d'une partie du texte comme cela :
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
 
            if(sActName.startsWith(BTN_COLOR_BG_ACTION))
            {
                Color c = null;
                if(BTN_COLOR_BG_BLUE_ACTION.equals(sActName))
                    c = Color.BLUE;
                else if(BTN_COLOR_BG_GREEN_ACTION.equals(sActName))
                    c = Color.GREEN;
                else if(BTN_COLOR_BG_RED_ACTION.equals(sActName))
                    c = Color.RED;
                else if(BTN_COLOR_BG_WHITE_ACTION.equals(sActName))
                    c = Color.WHITE;
                else if(BTN_COLOR_BG_YELLOW_ACTION.equals(sActName))
                    c = Color.YELLOW;
                cAttr = new SimpleAttributeSet();
                StyleConstants.setBackground(cAttr, c);
                return;
            }
            this.doc.setCharacterAttributes(iSelStart, iSelLength, cAttr, false);
            this.editorKit.getInputAttributes().addAttributes(cAttr);
et plus tard, je vais sauvegarder le contenu HTML dans un petit fichier. J'ai essayé de le faire faire à l'EditorKit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
                writer = new FileOutputStream(sFile);
                Document doc = (Document)this.txtPane.getDocument();
                EditorKit kit = this.txtPane.getEditorKit();
                kit.write(writer, doc, doc.getStartPosition().getOffset(), doc.getLength());
                writer.flush();
ou avec le this.txtPane.getText()

Et dans aucun des cas, ca n'enregistre la coloration de fond du texte :'( pourtant ca le gère bien à l'affichage ... je n'y comprend rien :'(

Une idée ?
Merci