如何将字体设置为字符串

How to set fonts to a string

有没有办法在字符串上设置字体,然后用图形绘制字符串?我知道您可以在 Jlabels、Jtextfields 和 J-other 组件上做到这一点,但是有没有办法只在字符串上做到这一点?谢谢你。

是的,有可能,首先查看 Graphics, Text tutorials

基本上,您可以使用Graphics#setFont and draw a String using Graphics#drawString设置字体。

另请参阅 Performing Custom Painting 以了解如何在 Swing 中执行自定义绘画

对于example

列出可用的字体名称....

String fonts[] = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
for (String font : fonts) {
    System.out.println(font);
}

Font fonts[] = GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts();
for (Font font : fonts) {
    System.out.println(font);
}

您可以使用 Font#derive 方法之一来操纵字体的属性...

 Font font = ...;
 Font bigger = font.derive(32f);
 Font bolder = font.derive(Font.BOLD);
 Font biggerAndBolder = font.derive(Font.BOLD, 32f);

您可以使用 attributed strings 的示例

Font font = new Font("LucidaSans", Font.PLAIN, 14);
AttributedString atString= new AttributedString("Example text string");
atString.addAttribute(TextAttribute.FONT, font);
graphic.drawString(atString.getIterator(),x,y);

干杯!

我们实际上可以在图形中设置字体...然后绘制字符串。

public void paintComponent(Graphics g) {

    super.paintComponent(g);

    g.setColor(Color.BLUE);
    g.setFont(Fonts.f);
    g.drawString(Fonts.text, 50, 50);

}