|
|||||||||||||||||||
| 30 day Evaluation Version distributed via the Maven Jar Repository. Clover is not free. You have 30 days to evaluate it. Please visit http://www.thecortex.net/clover to obtain a licensed version of Clover | |||||||||||||||||||
| Source file | Conditionals | Statements | Methods | TOTAL | |||||||||||||||
| Util.java | 0% | 0% | 0% | 0% |
|
||||||||||||||
| 1 |
/*
|
|
| 2 |
* Util.java Created on June 5, 2004, 10:21 AM
|
|
| 3 |
*/
|
|
| 4 |
|
|
| 5 |
package baseCode.graphics.text;
|
|
| 6 |
|
|
| 7 |
import java.awt.Component;
|
|
| 8 |
import java.awt.Font;
|
|
| 9 |
import java.awt.FontMetrics;
|
|
| 10 |
import java.awt.Graphics;
|
|
| 11 |
import java.awt.Graphics2D;
|
|
| 12 |
import java.awt.font.FontRenderContext;
|
|
| 13 |
import java.awt.font.TextLayout;
|
|
| 14 |
import java.awt.geom.AffineTransform;
|
|
| 15 |
|
|
| 16 |
/**
|
|
| 17 |
* @author Will Braynen
|
|
| 18 |
* @version $Id: Util.java,v 1.9 2004/07/27 03:18:58 pavlidis Exp $
|
|
| 19 |
*/
|
|
| 20 |
public class Util { |
|
| 21 |
|
|
| 22 |
/**
|
|
| 23 |
* @param text the string whose pixel width is to be measured
|
|
| 24 |
* @param font the pixels width of a string varies from font to font
|
|
| 25 |
* @param c the parent component; usually <code>this</code>
|
|
| 26 |
* @return the pixel width of the string for the specified font.
|
|
| 27 |
*/
|
|
| 28 | 0 |
public static int stringPixelWidth( String text, Font font, Component c ) { |
| 29 |
|
|
| 30 | 0 |
FontMetrics fontMetrics = c.getFontMetrics( font ); |
| 31 | 0 |
return fontMetrics.charsWidth( text.toCharArray(), 0, text.length() );
|
| 32 |
|
|
| 33 |
} // end stringPixelWidth
|
|
| 34 |
|
|
| 35 |
/**
|
|
| 36 |
* @param strings an array of strings whose pixels widths to compare
|
|
| 37 |
* @param font the pixels width of a string varies from font to font
|
|
| 38 |
* @param c the parent component; usually <code>this</code>
|
|
| 39 |
* @return the largest pixel width of a string in the <code>strings</code> array.
|
|
| 40 |
*/
|
|
| 41 | 0 |
public static int maxStringPixelWidth( String[] strings, Font font, |
| 42 |
Component c ) {
|
|
| 43 |
|
|
| 44 |
// the number of chars in the longest string
|
|
| 45 | 0 |
int maxWidth = 0;
|
| 46 | 0 |
int width;
|
| 47 | 0 |
String s; |
| 48 | 0 |
for ( int i = 0; i < strings.length; i++ ) { |
| 49 | 0 |
s = strings[i]; |
| 50 | 0 |
width = stringPixelWidth( s, font, c ); |
| 51 | 0 |
if ( maxWidth < width ) {
|
| 52 | 0 |
maxWidth = width; |
| 53 |
} |
|
| 54 |
} |
|
| 55 |
|
|
| 56 | 0 |
return maxWidth;
|
| 57 |
} // end getMaxPixelWidth
|
|
| 58 |
|
|
| 59 |
/**
|
|
| 60 |
* Draws a string vertically, turned 90 degrees counter-clockwise. Read carefully what the <i>x </i> and <i>y </i>
|
|
| 61 |
* coordinates means; chances are that if you draw to (x,y) = (0,0), you won't see anything.
|
|
| 62 |
*
|
|
| 63 |
* @param g the graphics context on which to draw
|
|
| 64 |
* @param text the string to draw
|
|
| 65 |
* @param font the font to use
|
|
| 66 |
* @param x the <i>x </i> coordinate where you want to place the baseline of the text.
|
|
| 67 |
* @param y the <i>y </i> coordinate where you want to place the first letter of the text.
|
|
| 68 |
*/
|
|
| 69 | 0 |
public static void drawVerticalString( Graphics g, String text, Font font, |
| 70 |
int x, int y ) { |
|
| 71 | 0 |
Graphics2D g2 = ( Graphics2D ) g; |
| 72 | 0 |
AffineTransform fontAT = new AffineTransform();
|
| 73 |
//fontAT.shear(0.2, 0.0); // slant text backwards
|
|
| 74 | 0 |
fontAT.setToRotation( Math.PI * 3.0f / 2.0f ); // counter-clockwise 90
|
| 75 |
// degrees
|
|
| 76 | 0 |
FontRenderContext frc = g2.getFontRenderContext(); |
| 77 | 0 |
Font theDerivedFont = font.deriveFont( fontAT ); |
| 78 | 0 |
TextLayout tstring = new TextLayout( text, theDerivedFont, frc );
|
| 79 | 0 |
tstring.draw( g2, x, y ); |
| 80 |
|
|
| 81 |
} // end drawVerticalString
|
|
| 82 |
} |
|
||||||||||