====== Java Swing Font ====== * [[http://docs.oracle.com/javase/tutorial/2d/text/index.html|Working with text APIs]] ===== *.ttf 파일 Font 객체 생성 ===== InputStream is = MyClass.class.getResourceAsStream("TestFont.ttf"); Font font = Font.createFont(Font.TRUETYPE_FONT, is); Font sizedFont = font.deriveFont(12f); myLabel.setFont(sizedFont); * [[http://stackoverflow.com/questions/12998604/adding-fonts-to-swing-application-and-include-in-package|java - Adding fonts to Swing application and include in package]] ===== Rendering Hints ===== graphics2D.setRenderingHint( RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); ===== drawString ===== * [[http://docs.oracle.com/javase/7/docs/api/java/awt/Graphics2D.html#drawString%28java.lang.String,%20float,%20float%29|Graphics2D.drawString]] 메소드는 ''y'' 좌표를 폰트의 bottom line(혹은 base text line)의 ''y''좌표로 잡고 그린다. * 따라서 FontMetrics를 통해서 그리기 좌표를 구해야한다. [[http://stackoverflow.com/questions/10839940/java-drawstring-is-drawing-string-above-bounds|참조]] * 현재 찾아낸 바로는 ''-(Font.getMaxCharBounds(FontRenderContext).getY())''값을 시작 ''y''값으로 사용하면 되는 것으로 보인다. * [[http://docs.oracle.com/javase/tutorial/2d/text/measuringtext.html|Java 2D measuring text]] 참조.