Java Changins图形抽绳颜色
我正在尝试从ttf文件创建字体,然后使用Graphics2D将其作为特定颜色渲染到屏幕上 字体加载良好,并作为正确的字体呈现在屏幕上,但文本颜色保持黑色。如何将文本的颜色更改为白色或其他颜色?感谢您的帮助 获取字体:Java Changins图形抽绳颜色,java,graphics,fonts,colors,Java,Graphics,Fonts,Colors,我正在尝试从ttf文件创建字体,然后使用Graphics2D将其作为特定颜色渲染到屏幕上 字体加载良好,并作为正确的字体呈现在屏幕上,但文本颜色保持黑色。如何将文本的颜色更改为白色或其他颜色?感谢您的帮助 获取字体: public Font getFont(String name) { Font font = null; if (name == null) { font = new Font("sans", Font.PLAIN,
public Font getFont(String name) {
Font font = null;
if (name == null) {
font = new Font("sans", Font.PLAIN, 24);
}
try {
String fname = "assets/fonts/" + name;
File fontFile = new File(fname);
font = Font.createFont(Font.TRUETYPE_FONT, fontFile);
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(font);
} catch (Exception e) {
e.printStackTrace();
}
return font;
}
绘制文本:
Font title = getFont("PressStart2P.ttf");
g2.setFont(title.deriveFont(30.0f));
g2.setColor(Color.WHITE);
g2.drawString("A Game of Squares", 50, 80);
问题在于:
g2.setColor(new Color(Color.WHITE));
Java中的Color类不接受另一个Color对象作为其构造函数的输入,因为Color.WHITE(以及无数其他预定义颜色)是对Color对象的引用,因此该行应为:
g2.setColor(Color.WHITE);
来源:问题在于:
g2.setColor(new Color(Color.WHITE));
Java中的Color类不接受另一个Color对象作为其构造函数的输入,因为Color.WHITE(以及无数其他预定义颜色)是对Color对象的引用,因此该行应为:
g2.setColor(Color.WHITE);
来源:对我来说很好
一些注意事项:
paint
方法中加载资源,这会减慢绘制过程。绘制方法应尽快返回paint
方法中加载资源,这会减慢绘制过程。绘制方法应尽快返回setColor()
应该可以工作。您不需要说newcolor()
。只是常数应该起作用。它对我起作用。实际操作需要更少的猜测工作和更好的响应setColor()
应该有效。您不需要说newcolor()
。只是常数应该起作用。它对我起作用。一个实际的测试需要更少的猜测工作和更好的响应。很抱歉,我在重新键入代码时犯了一个错误。我最初将其作为新颜色(0xFFFFFF),但为了简单起见,将其更改为Color.WHITE。g2.设置颜色(颜色为白色);也不起作用。“布兰登,我做了我自己的测试,它很好,也许你应该考虑提供一个实际的包含较少猜测工作和更好的响应机会我们可以看到一个更完整的版本你的绘画(图形G)方法在那里?我已经建立了一个样板JFrame,并添加了getFont(字符串名称)方法,将给定的绘图代码粘贴到paint(Graphics g)方法中,甚至使用了与您相同的字体,但我这边的字体正在改变颜色,这指出了您先前的paint(Graphics g)方法中的一个问题,甚至可能是后来用黑色绘制的文本。实际上,它似乎工作正常。。。对于任何颜色,除了白色,这是不幸的唯一颜色,我测试…对不起,我犯了一个错误,而重新键入我的代码。我最初将其作为新颜色(0xFFFFFF),但为了简单起见,将其更改为Color.WHITE。g2.设置颜色(颜色为白色);也不起作用。“布兰登,我做了我自己的测试,它很好,也许你应该考虑提供一个实际的包含较少猜测工作和更好的响应机会我们可以看到一个更完整的版本你的绘画(图形G)方法在那里?我已经建立了一个样板JFrame,并添加了getFont(字符串名称)方法,将给定的绘图代码粘贴到paint(Graphics g)方法中,甚至使用了与您相同的字体,但我这边的字体正在改变颜色,这指出了您先前的paint(Graphics g)方法中的一个问题,甚至可能是后来用黑色绘制的文本。实际上,它似乎工作正常。。。除了白色以外的任何颜色,不幸的是白色是我测试的唯一颜色。。。