我用Java编写了一个程序,它使用一种特殊的字体,默认情况下在任何操作系统上都不存在.
在Java中是否可以将这种特殊字体添加到操作系统中?例如,在Windows中,将此字体复制到特殊的Fonts文件夹.
如果有可能,怎么样?
我想知道如何导入字体.
我正在尝试使用自定义下载的字体,但由于大多数计算机将运行此字体,因此它不是默认字体.即使他们没有字体,我怎样才能使字体工作?
我正在将它用于游戏画面,需要用它显示乐谱,并希望乐谱文本是相同的字体.这是图像,
如果重要,我的电脑上的字体名称是 Terminal
编辑:我假设它必须在java文件的目录中有字体,并有一些方法使用它,但我不知道如何.或者,还有更好的方法?
编辑2:我找到了一个很好的教程,如何做到这一点,但需要一些帮助我如何使用这个... 点击我的链接
EDIT3:
URL fontUrl = new URL("http://www.webpagepublicity.com/" + "free-fonts/a/Airacobra%20Condensed.ttf");
Font font = Font.createFont(Font.TRUETYPE_FONT, fontUrl.openStream());
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(font);
g.setFont(font);
Run Code Online (Sandbox Code Playgroud)
错误信息
File: F:\Computer Science\draw.java [line: 252]
Error: F:\Computer Science\draw.java:252: font is not public in java.awt.Component; cannot be accessed from outside package
Run Code Online (Sandbox Code Playgroud)
这是我正在尝试的:
URL fontUrl = new URL("http://img.dafont.com/dl/?f=badaboom_bb");
Font font = Font.createFont(Font.TRUETYPE_FONT, fontUrl.openStream());
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(font);
g.setFont(font);
Run Code Online (Sandbox Code Playgroud)
Edit4:
File fontfile = new File("TexasLED.ttf");
File.toURI(fontfile).toURL(fontfile);
URL fontUrl = new URL("fontfile");
Run Code Online (Sandbox Code Playgroud)
错误 …
我正在使用java.awt.Font,我怎样才能发现系统上是否安装了定义的字体?
具体来说,我有
Font font = new Font("FooBar", 0, 14);
Run Code Online (Sandbox Code Playgroud)
我想发现"font"是否是系统上的有效字体,如果不可用,则默认为更通用的字体.
我有一个Graphics2D
对象,我想使用它的drawString
方法。我可以调用该方法并传递String和(x,y)位置,这非常好。但是,我也可以Graphics2D
使用setFont
需要Font对象的方法来更改对象的字体。这也很好。不幸的是,这对我来说还不够,因为我打算为我的Font对象定义多个字体文本。
这是我想转移到我的Font对象的文本表示形式:
font-family:"Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif
Run Code Online (Sandbox Code Playgroud)
我已经看到我可以使用该AttributedCharacterIterator
界面来解决我的问题,但是,我不确定应该如何使用它。我已经看到实际上有一个名为的实现AttributedString
,它具有一组Attributes
,但是我不确定如何创建一个AttributedString
对象,该对象可以由的构造Font
方法使用,以使我的Graphics2D
对象能够识别多种字体并应用他们在我打电话的时候drawString
。
编辑:
public static AttributedString getFontByAttributes(String atts, String value)
{
String[] attributes = atts.split(",");
AttributedString attributedString = new AttributedString(value);
for (int attributeIndex = 0; attributeIndex < attributes.length; attributeIndex++)
{
attributedString.addAttribute(TextAttribute.FONT, attributes[attributeIndex].trim());
}
return attributedString;
}
//...
public void drawTitle(Graphics2D g2d)
{
//...
g2d.drawString(getFontByAttributes(Settings.titleFontString, Settings.title).getIterator(), Settings.headerWidthOffset, Settings.headerHeightOffset);
//... …
Run Code Online (Sandbox Code Playgroud)