View Javadoc
1 /*** 2 * Copyright (c) 2003 held jointly by the individual authors. 3 * 4 * This library is free software; you can redistribute it and/or modify it 5 * under the terms of the GNU Lesser General Public License as published 6 * by the Free Software Foundation; either version 2.1 of the License, or 7 * (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, but 10 * WITHOUT ANY WARRANTY; with out even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public License 15 * along with this library; if not, write to the Free Software Foundation, 16 * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. 17 * 18 * > http://www.gnu.org/copyleft/lesser.html 19 * > http://www.opensource.org/licenses/lgpl-license.php 20 */ 21 package net.mlw.gfw.ext; 22 23 import java.awt.Color; 24 import java.awt.FontMetrics; 25 import java.awt.Graphics; 26 27 /*** 28 * @author Matthew L. Wilson 29 * @version $Revision: 1.2 $ $Date: 2004/06/29 20:33:03 $ 30 */ 31 public class PaintUtils 32 { 33 public static void drawVerticalString(Graphics b, Color background, String text, int x, int y) 34 { 35 if (text == null || text.length() == 0) 36 { 37 return; 38 } 39 40 int maxwidth = 0; 41 char[] chars = text.toCharArray(); 42 int[] widths = new int[chars.length]; 43 String[] strings = new String[chars.length]; 44 FontMetrics fontMetrics = b.getFontMetrics(); 45 46 int length = widths.length; 47 48 //Get the max width of a char. 49 for (int i = 0; i < length; i++) 50 { 51 if ((widths[i] = fontMetrics.stringWidth(strings[i] = String.valueOf(chars[i]))) > maxwidth) 52 { 53 maxwidth = widths[i]; 54 } 55 } 56 57 b.setColor(background); 58 b.fillRect(x, y - (((fontMetrics.getHeight() / 2) * length)+fontMetrics.getHeight() ), 10, fontMetrics.getHeight()*length+5); 59 b.setColor(Color.BLACK); 60 61 for (int i = 0; i < length; i++) 62 { 63 b.drawString(strings[i], x + (int) ((maxwidth - widths[i]) / 2), y + (fontMetrics.getHeight() * i) - (((fontMetrics.getHeight() / 2) * length))); 64 } 65 } 66 }

This page was automatically generated by Maven