使用Java的Graphics或Graphics2D类,我该如何绘制一个字符串?

3
我有一个字符串,想将其绘制到图像上。我能够绘制点和线,但是即使阅读了2D图形教程的文本部分,我也无法弄清如何将一个字符串绘制到我的图形上。除非我看错了教程(但这是我在搜索任何关于使用GraphicsGraphics2D绘制字符串的Java内容时得到的教程),否则我仍然被卡住了。
2个回答

8

请查看以下方法。

g.drawString();

drawString()方法将实现您所需的功能。

下面是一个使用示例:

protected void paintComponent(Graphics g){
    g.setColor(Color.BLACK);
    g.drawString(5, 40, "Hello World!");
}

只需记住,坐标是相对于您正在绘制的String的左下角。

谢谢。为什么我阅读的教程中没有提到这一点呢?虽然我学了很多关于字体和其他东西的知识... - Thomas Owens
不知道。在Swing中,这是一件相当基本的事情。 - jjnguy
这是一个奇怪的教程,似乎什么都没有:D 这里是1.4版Graphics2D的javadoc,比你看的那个教程好多了:D http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Graphics2D.html - guyumu
那不应该是一个教程。它只是指向Graphics的Javadocs链接,其中包含drawString() - jjnguy

3
如果您想玩弄字符串的形状(例如:填充为红色和描边为蓝色):
Graphics2D yourGraphicsContext=(...);
Font f= new Font("Dialog",Font.PLAIN,14);
FontRenderContext frc = yourGraphicsContext.getFontRenderContext();
TextLayout tl = new TextLayout(e.getTextContent(), f, frc);
Shape shape= tl.getOutline(null);

//here, you can move your shape with AffineTransform (...)

yourGraphicsContext.setColor(Color.RED);
yourGraphicsContext.fill(shape);
yourGraphicsContext.setColor(Color.BLUE);
yourGraphicsContext.draw(shape);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接