我有文本面板正在生成。我需要在文本被选中时对文本进行重写,并且在点击上标按钮期间,我需要上标文本。如果文本已经被上标,它需要对文本进行不记录。我的问题是我能够上标文字,但无法恢复。我正在检查isSuperscript条件,但每次它返回值为true并将文本设置为上标。下面是我使用的代码,谁能告诉我如何重置上标文本。SWING:无法重置字体上标
SimpleAttributeSet sasText = new SimpleAttributeSet(parentTextPane.getCharacterAttributes());
System.out.println("character set 1 " + sasText.toString());
if (StyleConstants.isSuperscript(sasText)){
System.out.println("already super");
StyleConstants.setSuperscript(sasText, false);
} else {
System.out.println("needs super");
StyleConstants.setSuperscript(sasText, true);
}
int caretOffset = parentTextPane.getSelectionStart();
parentTextPane.select(caretOffset, caretOffset + textLength);
HTMLDoc.setCharacterAttributes(selStart,textLength,sasText, false);
parentEkit.refreshOnUpdate();
非常感谢AKF。我有一种感觉,这是关于这个getCharacterAttribute(),但没有适当的技能来改变它。 – user234852 2010-02-11 02:56:16