Usando classes de elementos gráficos ou Graphics2D do Java, como eu pintar uma String?
-
05-07-2019 - |
Pergunta
Eu tenho um String
e quero pintá-lo em uma imagem. Eu sou capaz de pintar pontos e desenhar linhas, no entanto, mesmo depois de ler o parte do texto do Gráficos 2D tutorial , eu não consigo descobrir como eu posso dar uma String
e pintá-lo para o meu desenho.
A menos que eu estou olhando para o tutorial errado (mas é o que eu obter sempre que procurar nada sobre Java e pintura Cordas usando Graphics
ou Graphics2D
), eu ainda estou perplexo.
Solução
Confira o seguinte método.
g.drawString();
O método drawString()
vai fazer o que você precisa.
Um exemplo de uso:
protected void paintComponent(Graphics g){
g.setColor(Color.BLACK);
g.drawString(5, 40, "Hello World!");
}
Basta lembrar, as coordenadas são relativas ao canto inferior esquerdo da String
você está desenhando.
Outras dicas
Se você quiser jogar com o forma de sua string (por exemplo: preenchimento: vermelho e acidente vascular cerebral: azul):
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);