devo creare una specie di "styled editor" che abbia il bold, italic, underline, e anche alcune caratteristiche html, cioe' link, lista ordinata, lista non ordinata, tabella

ho un fatto delle prove con jtextpane ma mi da un problemino, e non so se si puo' utilizzare per le tabelle e per le liste:
ho due stili: bold e italic, se ne applico uno sul testo dove ho gia applicato l'altro, viene sovrascritto.

come faccio per fare in modo che non si sovrascrivono?
e come facico per capire se è stato utilizzato uno stile su una parte di testo?

Codice PHP:
StyledDocument doc Editor.getStyledDocument();
        
SimpleAttributeSet charAttributes = new SimpleAttributeSet();
        
StyleConstants.setItalic(charAttributestrue);
        
int i Editor.getSelectionStart();
        
int f Editor.getSelectionEnd();
        
int l f-i;
        
doc.setCharacterAttributes(ilcharAttributestrue); 
Codice PHP:
StyledDocument doc Editor.getStyledDocument();
        
SimpleAttributeSet charAttributes = new SimpleAttributeSet();
        
StyleConstants.setBold(charAttributestrue);
        
int i Editor.getSelectionStart();
        
int f Editor.getSelectionEnd();
        
int l f-i;
        
doc.setCharacterAttributes(ilcharAttributestrue); 
devo utilizzare degli altri oggetti come
javax.swing.text.StyledEditorKit;
javax.swing.text.html.HTMLEditorKit;

non ci sono alcuni esmepi semplici?