Como melhorar esse código?

Aí, galera!!!
Implementei um HTMLEditorKit para realizar formatações num JEditorPane (Swing) com tags HTML…
Funciona, porém se eu quiser formatar um determinado trecho do texto com duas ou mais formatações a formatação anterior é desfeita…
Tipo: Se eu formatar a palavra “ônibus” para a cor vermelha ([color=red]ônibus[/color])e quiser colocar as letras “bus” em negrito elas voltam a ficar na cor padrão preta ([color=red]ôni[/color]bus) enquanto deveriam continuar vermelhar ([color=red]ônibus[/color])…
Alguém sabe como resolver isso nesse código (abaixo) ???

// obtém o texto selecionado no JEditorPane (editPanel)... String textoSelecionado = editPanel.getSelectedText(); HTMLEditorKit kit = (HTMLEditorKit)editPanel.getEditorKit(); HTMLDocument doc = (HTMLDocument)editPanel.getDocument(); // retira o texto selecionado do editPanel... editPanel.replaceSelection(""); try { // insere as tags HTML responsáveis pela formatação... kit.insertHTML(doc, editPanel.getCaretPosition(), "<font color=\"rgb(255, 0, 0)\">"+ textoSelecionado, 0, 0, HTML.Tag.FONT); // retorna a seleção para o texto... editPanel.select(editPanel.getCaretPosition() - textoSelecionado.length(), editPanel.getCaretPosition()); } catch (Exception e) { JOptionPane.showMessageDialog(this, "Formatação Inválida!", "Erro", JOptionPane.ERROR_MESSAGE); e.printStackTrace(); }
Por favor, alguém???
Valeu!