2010-05-08 3 views
1

Monospace 모드에서 Graphics2d를 사용하여 Java로 String을 그릴 수있는 방법은 무엇입니까? 나는 LCD 화면 글꼴처럼 보이는 글꼴을 가지고 있으며, 나는 LCD 레이블과 같은 것을 그리기를 원한다.Java 고정 폭 글꼴 그립니다.

나는 Digital 7 Mono 글꼴을 사용하고 있습니다.

모노 스페이스와 lcd가 될 다른 글꼴을 어디에서 찾을 수 있는지 알고 있습니까?

+1

안녕하십니까, javaAmator! 불행하게도, 비록 당신이 자바로 프로젝트를하고있다 할지라도,이 질문은 실제로 폰트를 찾는 행위가 프로그래밍과 관련이 없으므로 그다지 적합하지 않습니다. 나는 당신이 http://www.doctype.com/에서 디자인 지향적 인 사람들이있는 곳에서 물어볼 것을 제안한다. 알고리즘, 프로그래밍 언어 구문 또는 버그 코드와 관련하여 궁금한 점이 있으시면 언제든지 도와 드리겠습니다. – Pops

+0

@ Lord Torgamus : 귀하의 의견에 동의하지만 드로잉 질문에 대한 답변을 제안했습니다. 죄송합니다. 당신의 제안이 도움이되지 못하면 제가 죄송합니다. 보통 플랫폼 지정 글꼴 군을 고수하고 있으므로 대체 글꼴을 선택하는 방법에 대한 추가 나 수정을 환영합니다. – trashgod

답변

2

Monospace 모드에서 Graphics2d를 사용하여 Java로 String을 그릴 수있는 방법은 무엇입니까?

텍스트를 렌더링하는 데 필요한 필수적인 방법은 아래에 설명 된대로 drawString()입니다. "모노 스페이스 모드"는 그 자체는이지만, 비례하여 간격을 둔 폰트 일지라도 일반적으로 숫자 글립에는 일정한 폭을 사용합니다.

private static final Font font = new Font("Monospaced", Font.PLAIN, 32); 
private static final String s = "12:34"; 
... 
@Override 
protected void paintComponent(Graphics g) { 
    super.paintComponent(g); 
    g.setFont(font); 
    int xx = this.getWidth(); 
    int yy = this.getHeight(); 
    int w2 = g.getFontMetrics().stringWidth(s)/2; 
    int h2 = g.getFontMetrics().getDescent(); 
    g.setColor(Color.green); 
    g.drawString(s, xx/2 - w2, yy/2 + h2); 
} 

는 완전한 예를 here있다, 당신은 here을 볼 때, 레이아웃 매니저를 사용하여 위치를 제어하기 위해 적절한 JComponent을 확장 할 수 있습니다.