使用指定字体将字符串插入到文档中

发布于 2024-11-05 22:31:14 字数 533 浏览 5 评论 0原文

我知道我可以在 AttributeSet 上设置字体系列,如下所示:

        SimpleAttributeSet set = new SimpleAttributeSet();
        StyleConstants.setFontFamily(set, "Monospace");

        doc.insertString(
            caretPosition, text, set);

但我真正想做的是设置字体:

        StyleConstants.setFont(set, "Courier New");

但是,没有 StyleConstants.setFont() 方法。

那么如何在 AttributeSet 上设置字体呢? (请注意,我可以自由地使用 SimpleAttributeSet 以外的 AttributeSet 实现。我只是碰巧使用了该实现。)

(请注意,我的真正目标是使用指定字体将字符串插入到文档中。)

I know I can set a font family on an AttributeSet like this:

        SimpleAttributeSet set = new SimpleAttributeSet();
        StyleConstants.setFontFamily(set, "Monospace");

        doc.insertString(
            caretPosition, text, set);

But what I really want to do is set a font:

        StyleConstants.setFont(set, "Courier New");

However, there is no StyleConstants.setFont() method.

So how do I set a font on an AttributeSet? (Note that I am free to use an implementation of AttributeSet other than SimpleAttributeSet. I just happened to use that one.)

(Note that my real goal is to insert a string into a Document using a specified font.)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夜声 2024-11-12 22:31:14

就我而言,这

SimpleAttributeSet set = new SimpleAttributeSet();
StyleConstants.setFontFamily(set, "Monospace");

是行不通的。我必须将“等宽”更改为“等宽”:

StyleConstants.setFontFamily(set, "Monospaced");

要查找所有可用的系列,您可以使用以下代码:

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fnt = ge.getAvailableFontFamilyNames();

for (String f : fnt){
            System.out.println(f);
}

Benedek

In my case the

SimpleAttributeSet set = new SimpleAttributeSet();
StyleConstants.setFontFamily(set, "Monospace");

does not work. I must change the "Monospace" to "Monospaced":

StyleConstants.setFontFamily(set, "Monospaced");

To find all available family you can use the following code:

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fnt = ge.getAvailableFontFamilyNames();

for (String f : fnt){
            System.out.println(f);
}

Benedek

女皇必胜 2024-11-12 22:31:14

您可以使用 StyleConstants 设置所有字体属性:

SimpleAttributeSet set = new SimpleAttributeSet();
StyleConstants.setFontFamily(set, "Monospace");
StyleConstants.setFontSize(set, 22);
StyleConstants.setBold(set, true);
StyleConstants.setItalic(set, true);

You can set all font attributes using StyleConstants:

SimpleAttributeSet set = new SimpleAttributeSet();
StyleConstants.setFontFamily(set, "Monospace");
StyleConstants.setFontSize(set, 22);
StyleConstants.setBold(set, true);
StyleConstants.setItalic(set, true);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文