2009-07-30 1 views
3

나는 String을 가지고 있으며 이미지 위에 페인트하고 싶습니다. 포인트를 그리거나 선을 그릴 수 있지만 Text part of the 2D Graphics tutorial을 읽은 후에도 String을 가져 와서 내 그림에 칠하는 방법을 알 수 없습니다. 내가 잘못 튜토리얼에서 찾고 있어요 (하지만 내가 자바와 Graphics 또는 Graphics2D를 사용하여 그림 문자열에 대해 아무것도를 검색 할 때마다 내가 얻을 하나)하지 않는 한Java의 Graphics 또는 Graphics2D 클래스를 사용하면 String을 어떻게 페인트 할 수 있습니까?

은, 난 여전히 난처한 상황에 빠진거야.

답변

8

다음 방법을 확인하십시오.

g.drawString(); 

drawString() 메서드는 필요한 것을 처리합니다.

예 사용 :

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

그냥, 좌표가 String 그리는의 왼쪽 하단에 관한 기억하십시오.

+0

감사합니다. 내가 읽은 튜토리얼에서 이것에 대한 언급이없는 이유는 무엇입니까? 나는 글꼴과 물건에 대해 많이 배웠지 만 ... –

+0

잘 모르겠다. Swing에서하는 것은 아주 기본적인 작업입니다. – jjnguy

+0

그것은 아무것도 포함하지 않는 이상한 튜토리얼입니다 : D 여기 1.4의 javadoc for Graphics2D는 D http://java.sun.com/j2se/1.4보다 훨씬 나은 튜토리얼입니다. 2/docs/api/java/awt/Graphics2D.html – guyumu

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); 
관련 문제