【问题标题】:Having A Problem In Changing Font in java在java中更改字体时遇到问题
【发布时间】:2019-11-10 12:31:19
【问题描述】:

我想在我的小程序中使用 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);


    }
}

它给了我默认字体,而不是像这样

请帮助我。谢谢你们。希望你能帮助我:)

【问题讨论】:

标签: java swing fonts applet japplet


【解决方案1】:

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);
    }
}

【讨论】:

    【解决方案2】:

    您没有为您声明的 font 设置任何属性,这就是为什么您使用默认大小和样式的字体。

     g2.setFont(font);
    

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

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

    【讨论】:

    • 这里忘记写了,但是不行,如果我使用衬线字体它会改变,但当其他迷人的字体时它不会改变。
    • @Rig 您尝试使用哪种字体?
    • 我正在尝试使用 WoodPecker 字体,正如您在我提供的图片中看到的那样。
    • wfonts.com/font/woodpecker 这是字体的链接,请帮助我,这对我来说将是一种乐趣。我是java新手
    猜你喜欢
    • 1970-01-01
    • 2019-12-05
    • 2014-11-01
    • 2022-12-09
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多