Java examples for 2D Graphics:Text
Returns the bounds for the specified text.
/* =========================================================== * Orson Charts : a 3D chart library for the Java(tm) platform * =========================================================== * /*from w ww. j a v a 2s.c o m*/ * (C)opyright 2013-2016, by Object Refinery Limited. All rights reserved. * * http://www.object-refinery.com/orsoncharts/index.html * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. * Other names may be trademarks of their respective owners.] * * If you do not wish to be bound by the terms of the GPL, an alternative * commercial license can be purchased. For details, please see visit the * Orson Charts home page: * * http://www.object-refinery.com/orsoncharts/index.html * */ import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics2D; import java.awt.Shape; import java.awt.font.FontRenderContext; import java.awt.font.LineMetrics; import java.awt.font.TextLayout; import java.awt.geom.AffineTransform; import java.awt.geom.Rectangle2D; import java.text.AttributedString; public class Main{ /** * Returns the bounds for the specified text. The supplied text is * assumed to be on a single line (no carriage return or newline * characters). * * @param text the text ({@code null} not permitted). * @param fm the font metrics ({@code null} not permitted). * * @return The text bounds. */ public static Rectangle2D getTextBounds(String text, FontMetrics fm) { return getTextBounds(text, 0.0, 0.0, fm); } /** * Returns the bounds for the specified text when it is drawn with the * left-baseline aligned to the point {@code (x, y)}. * * @param text the text ({@code null} not permitted). * @param x the x-coordinate. * @param y the y-coordinate. * @param fm the font metrics ({@code null} not permitted). * * @return The bounding rectangle (never {@code null}). */ public static Rectangle2D getTextBounds(String text, double x, double y, FontMetrics fm) { double width = fm.stringWidth(text); double height = fm.getHeight(); return new Rectangle2D.Double(x, y - fm.getAscent(), width, height); } }