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

问题描述 投票:0回答:2

我想在我的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请帮我。感谢大伙们。希望你能帮助我:)

java applet japplet
2个回答
0
投票

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

0
投票

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

 g2.setFont(font);

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

g2.setFont(new Font("Some", Font.BOLD, 16));
© www.soinside.com 2019 - 2024. All rights reserved.