2009-07-30 8 views
3

J'ai un String et je veux le peindre sur une image. Je suis capable de peindre des points et de tracer des lignes, cependant, même après avoir lu le Text part of the 2D Graphics tutorial, je n'arrive pas à comprendre comment je peux prendre un String et le peindre sur mon dessin. À moins que je regarde le mauvais tutoriel (mais c'est celui que je reçois chaque fois que je cherche quelque chose sur Java et peindre des chaînes en utilisant Graphics ou Graphics2D), je suis toujours perplexe.En utilisant les classes Graphics ou Graphics2D de Java, comment peindre une chaîne?

Répondre

8

Vérifiez la méthode suivante. La méthode drawString() fera ce dont vous avez besoin.

Un exemple d'utilisation:

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

Rappelez-vous, les coordonnées sont au sujet de la partie inférieure gauche de la String vous dessinez.

+0

Merci. Pourquoi n'y a-t-il pas eu de mention dans le tutoriel que j'ai lu? J'ai beaucoup appris sur les polices et autres choses, cependant ... –

+0

Aucune idée. C'est une chose assez simple à faire dans Swing. – jjnguy

+0

c'est un étrange tutoriel qui semble ne rien contenir: D javadoc de 1.4 ici pour Graphics2D, c'est un bien meilleur tutoriel que celui que vous regardiez: D http://java.sun.com/j2se/1.4. 2/docs/api/java/awt/Graphics2D.html – guyumu

3

si vous voulez jouer avec la forme de votre chaîne (par exemple: remplir: rouge et course: bleu):

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