在Java中更改字体时遇到问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Java中更改字体时遇到问题相关的知识,希望对你有一定的参考价值。

我想在我的applet中使用drawString方法放置自定义字体,问题是即使我正确执行它也不会更改字体。我仍然是学生,因此请为我的代码大声疾呼。请帮我更改字体。我发现Java允许在方法字体中使用某些字体,请帮帮我。

import javax.swing.*;
import java.awt.*;
public class WoodyWoodPeckerShow extends JApplet {
    private Font font;



    public void init(){
        setFont(new Font("WoodPecker",Font.TRUETYPE_FONT,30));
    }

    public void paint(Graphics g){
        Graphics2D g2 = (Graphics2D)g;

        g2.setFont(font);
        g2.drawString("WoodyWoodPecker",10,200);


    }
}

它给了我默认字体,而不是像这样enter image description here请帮我。感谢大伙们。希望你能帮助我:)

答案

WoodyWoodPeckerShow类中的实例变量font为空,因为您仅设置了具有相同名称的超类变量的值。您可以完全删除实例变量,并在超类中使用它,如下所示:

import javax.swing.*;
import java.awt.*;

public class WoodyWoodPeckerShow extends JApplet {
    @Override
    public void init() {
        setFont(new Font("WoodPecker", Font.TRUETYPE_FONT, 30));
    }

    @Override
    public void paint(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;

        g2.setFont(getFont());
        g2.drawString("WoodyWoodPecker", 10, 200);
    }
}
另一答案

您尚未为声明的font设置任何属性,这就是为什么字体具有默认大小和样式的原因。

 g2.setFont(font);

您必须设置所有这些内容或将新字体声明为匿名类,例如:

g2.setFont(new Font("Some", Font.BOLD, 16));

以上是关于在Java中更改字体时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

在 Java 中每次单击鼠标都会更改字符串的字体

如何在 Vs Code 中更改默认自动选择的用户片段行为

方向更改时,片段视图为空

如何在不更改字体本身的情况下更改 uilabel 的字体大小?

使用 Swift (Xcode 6) 更改 BarButtonItem 字体

在 matplotlib 中更改颜色条的字体大小