新java字体';s的大小始终为1
我用java为我的项目添加了一种新字体。但是,在渲染时,文本大小始终为1。文本基本上只显示为几行。我尝试了多种字体,他们都做到了。这是我的密码新java字体';s的大小始终为1,java,fonts,font-size,truetype,Java,Fonts,Font Size,Truetype,我用java为我的项目添加了一种新字体。但是,在渲染时,文本大小始终为1。文本基本上只显示为几行。我尝试了多种字体,他们都做到了。这是我的密码 public static void intializeFonts(){ try{ File font = new File("C:/The Woods/Fonts/script.ttf"); Font scriptFontU = Font.createFont(Font.TRUETYPE_FONT,
public static void intializeFonts(){
try{
File font = new File("C:/The Woods/Fonts/script.ttf");
Font scriptFontU = Font.createFont(Font.TRUETYPE_FONT, font);
Font scriptFont = scriptFontU.deriveFont(20);
script = new TrueTypeFont(scriptFont, false);
} catch(Exception e){
System.out.println("Error Loading Font");
}
}
如果这有帮助的话,这也是我用来渲染它的
g.setFont(Fonts.script);
g.drawString("Weight: "+ItemContainer.getWeight()+"lbs", 30, 600);
任何帮助都会很好。谢谢。当您调用
scriptFontU.deriveFont(20)
时,您正在调用Font.deriveFont(int)
。在此函数中,第一个参数是表示样式的整数。相反,您需要调用Font.deriveFont(float)
,它接受一个大小并保持样式不变。您可以通过调用scriptFontU.deriveFont(20.0)
或等效程序来实现这一点;或者调用Font.deriveFont(int,float)
asscriptFontU.deriveFont(Font.PLAIN,20.0)
使其明确无误。解决了这个问题,我使用了一个outprint来查找字体在系统中使用的名称,然后创建了新的Font(),而不是deriveFont(),它成功了。正如我在回答中提到的,deriveFont
无法工作的原因是您调用了错误的重载。如果您总是处理注册的系统字体,那么您的解决方案是正确的(也是更好的解决方案),但是如果您的字体作为资源包含,您将希望使用您的原始方法。请注意,“回答”和“接受”您自己的问题是可以的。这是一个记录解决方案的好方法。是的,我在发布后不久就意识到它工作的唯一原因是因为我在系统中有它。