JavaのdrawStringを右寄せにする方法
java.awt.Graphics.drawStringを右寄せにする方法を日本語で紹介しているサイトがなかったので投稿します。 gはGraphics2DのインスタンスでrightPositionは文字列の右端の位置(x軸)を表しています。このテクニックのかなめはFontMetricsでこれを使用することで文字列の幅をピクセル数として取得することができます。 例1 String s = “Hello World”; int rightPosition=100;//文字列の右端の位置 Font font1 = new Font(“SansSerif”, Font.PLAIN, 12);//好きなフォントを使用します g.setFont(font1); FontMetrics fontMetrics = g.getFontMetrics(); g.drawString(s, rightPosition – fontMetrics.stringWidth(s), y); 例2(AttributedStringを使用した例) Font font1 = new Font(“SansSerif”, Font.PLAIN, 12);//好きなフォントを使用します String s = “Hello World”; int rightPosition=100;//文字列の右端の位置 g.setFont(font1);//好きなフォントを使用します FontMetrics fontMetrics = g.getFontMetrics(); AttributedString astring = new AttributedString(s); astring.addAttribute(TextAttribute.FONT, font1); g.drawString(astring.getIterator(), rightPosition – fontMetrics.stringWidth(astring), y);