Usando las clases Graphics o Graphics2D de Java, ¿cómo pinto una cadena?
-
05-07-2019 - |
Pregunta
Tengo un String
y quiero pintarlo en una imagen. Soy capaz de pintar puntos y dibujar líneas, sin embargo, incluso después de leer Parte de texto del tutorial de gráficos 2D , no puedo entender cómo puedo tomar un String
y pintarlo en mi dibujo.
A menos que esté viendo el tutorial incorrecto (pero es el que recibo cada vez que busco algo sobre Java y pinto cadenas usando Graphics
o Graphics2D
), todavía estoy perplejo.
Solución
Revisa el siguiente método.
g.drawString();
El drawString ()
hará lo que necesites.
Un ejemplo de uso:
protected void paintComponent(Graphics g){
g.setColor(Color.BLACK);
g.drawString(5, 40, "Hello World!");
}
Solo recuerda, las coordenadas se refieren a la parte inferior izquierda de la Cadena
que estás dibujando.
Otros consejos
si quieres jugar con la forma de tu cadena (p. ej .: fill: red y 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);