与JTextPane关联的StyledDocument使用什么字体?默认情况下,它是否使用与JTextPane相同的字体?特别是,我想知道字体的大小。
发布于 2011-08-05 13:24:51
StyledDocument只是一个接口。界面没有任何字体。
如果您看一下DefaultStyledDocument类(实现接口)。
public Font getFont(AttributeSet attr) {
StyleContext styles = (StyleContext) getAttributeContext();
return styles.getFont(attr);
}然后在StyleContext的源代码中
public Font getFont(AttributeSet attr) {
// PENDING(prinz) add cache behavior
int style = Font.PLAIN;
if (StyleConstants.isBold(attr)) {
style |= Font.BOLD;
}
if (StyleConstants.isItalic(attr)) {
style |= Font.ITALIC;
}
String family = StyleConstants.getFontFamily(attr);
int size = StyleConstants.getFontSize(attr);
/**
* if either superscript or subscript is
* is set, we need to reduce the font size
* by 2.
*/
if (StyleConstants.isSuperscript(attr) ||
StyleConstants.isSubscript(attr)) {
size -= 2;
}
return getFont(family, style, size);
}然后在StyleConstants中。
public static int getFontSize(AttributeSet a) {
Integer size = (Integer) a.getAttribute(FontSize);
if (size != null) {
return size.intValue();
}
return 12;
}https://stackoverflow.com/questions/6949125
复制相似问题