Ok, wow. Pregunta difícil. Así que no he encontrado una manera de obtener el estilo de un personaje dado. Sin embargo, puede obtener MutableAttributeSet para un personaje dado y luego probar para ver si el estilo está en ese conjunto de atributos.
Style s; //your style
Element run = styledDocument.getCharacterElement(
textPane.getSelectionStart());
MutableAttributeSet curAttr =
(MutableAttributeSet)run.getAttributes();
boolean containsIt = curAttr.containsAttributes(s);
Uno de los problemas con la obtención del estilo para una serie de caracteres es que puede haber más de un estilo aplicado a la gama (ejemplo: puede seleccionar texto en negrita es donde algunos y otros no lo es).
Para actualizar el texto seleccionado se puede:
Style s; //your style
JTextPane textPane; //your textpane
textPane.setCharacterAttributes(s, false);
Ah, y parece que el getLogicalStyle función no funciona porque está devolviendo el estilo por defecto (o tal vez sólo el estilo) para el párrafo que contiene p, en lugar del estilo del personaje en p.
Acabo de visitar el enlace java2s y wow, muchos ejemplos. – extraneon