我正在使用DefaultStyledDocument并尝试找到正确的方法将样式设置为适当的等宽字体。所谓“适当”,是指选择的字体应满足以下条件:
- 用户计算机上存在等宽字体
- 用户指定的字体(Java中有标准方法吗?)
- 如果没有指定的字体,则会回退到标准等宽字体(“Monospaced”)。
这能够实现:
StyleConstants.setFontFamily(mainStyle, "Monospaced");
并且这也可以正常工作:
StyleConstants.setFontFamily(mainStyle, "Lucida Console");
但我似乎无法弄清楚如何判断所涉及的字体族是否存在于用户的计算机上(没有返回值可以设置setFontFamily),并且它是等宽字体。如果我使用“Lucida Consoleq”,它似乎会使用默认字体。