使用Java的Graphics或Graphics2D类,如何绘制String?

时间:2009-07-30 12:09:11

标签: java swing graphics paint graphics2d

我有String,我想把它画在图像上。我能够绘制点和绘制线条,但是,即使在阅读Text part of the 2D Graphics tutorial之后,我也无法弄清楚如何将String绘制到我的绘图上。

除非我正在查看错误的教程(但是每当我搜索有关Java的任何内容并使用GraphicsGraphics2D绘制字符串时,我都会得到这个教程),我仍然感到难过。 / p>

2 个答案:

答案 0 :(得分:8)

查看以下方法。

g.drawString();

drawString()方法可以满足您的需求。

使用示例:

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

请记住,坐标是关于您正在绘制的String的左下角。

答案 1 :(得分:3)

如果您想使用字符串的形状(例如:fill:red和stroke:blue):

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