Java Font Text Size getStringSizeForFont(final String string, final Font font)

Here you can find the source of getStringSizeForFont(final String string, final Font font)

Description

get String Size For Font

License

GNU General Public License

Declaration

public static Rectangle2D getStringSizeForFont(final String string, final Font font) 

Method Source Code

//package com.java2s;
/**//  ww w.  j  a va2s.  c  om
 *
 * ====================================================================================================================================================
 *         "AppWork Utilities" License
 *         The "AppWork Utilities" will be called [The Product] from now on.
 * ====================================================================================================================================================
 *         Copyright (c) 2009-2015, AppWork GmbH <e-mail@appwork.org>
 *         Schwabacher Stra?e 117
 *         90763 F?rth
 *         Germany
 * === Preamble ===
 *     This license establishes the terms under which the [The Product] Source Code & Binary files may be used, copied, modified, distributed, and/or redistributed.
 *     The intent is that the AppWork GmbH is able to provide their utilities library for free to non-commercial projects whereas commercial usage is only permitted after obtaining a commercial license.
 *     These terms apply to all files that have the [The Product] License header (IN the file), a <filename>.license or <filename>.info (like mylib.jar.info) file that contains a reference to this license.
 *
 * === 3rd Party Licences ===
 *     Some parts of the [The Product] use or reference 3rd party libraries and classes. These parts may have different licensing conditions. Please check the *.license and *.info files of included libraries
 *     to ensure that they are compatible to your use-case. Further more, some *.java have their own license. In this case, they have their license terms in the java file header.
 *
 * === Definition: Commercial Usage ===
 *     If anybody or any organization is generating income (directly or indirectly) by using [The Product] or if there's any commercial interest or aspect in what you are doing, we consider this as a commercial usage.
 *     If your use-case is neither strictly private nor strictly educational, it is commercial. If you are unsure whether your use-case is commercial or not, consider it as commercial or contact us.
 * === Dual Licensing ===
 * === Commercial Usage ===
 *     If you want to use [The Product] in a commercial way (see definition above), you have to obtain a paid license from AppWork GmbH.
 *     Contact AppWork for further details: <e-mail@appwork.org>
 * === Non-Commercial Usage ===
 *     If there is no commercial usage (see definition above), you may use [The Product] under the terms of the
 *     "GNU Affero General Public License" (http://www.gnu.org/licenses/agpl-3.0.en.html).
 *
 *     If the AGPL does not fit your needs, please contact us. We'll find a solution.
 * ====================================================================================================================================================
 * ==================================================================================================================================================== */

import java.awt.Font;

import java.awt.font.FontRenderContext;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;

public class Main {
    public static Rectangle2D getStringSizeForFont(final String string, final Font font) {
        if (font == null) {
            return null;
        } else if (string == null || string.length() == 0) {
            return new Rectangle2D.Double(0, 0, 0, 0);
        } else {
            final FontRenderContext fontRenderContext = new FontRenderContext(new AffineTransform(), true, true);
            final double width = font.getStringBounds(string, fontRenderContext).getWidth();
            final double height = font.getStringBounds(string, fontRenderContext).getHeight();
            return new Rectangle2D.Double(0, 0, width, height);
        }
    }
}

Related

  1. getStringDimensions(Graphics2D graphics, Font font, String[] stringsByLine)
  2. getStringDisplaySize(String input)
  3. getStringSize(final Graphics g, final Font font, final String text)
  4. getStringSize(Graphics g, String text, Font font)
  5. getStringSize(String textToMeasure, Font displayFont)