Java FontMetrics setSizedFont(Graphics g, String text, float maxFontSize, int maxWidth)

Here you can find the source of setSizedFont(Graphics g, String text, float maxFontSize, int maxWidth)

Description

set Sized Font

License

Open Source License

Declaration

public static void setSizedFont(Graphics g, String text, float maxFontSize, int maxWidth) 

Method Source Code


//package com.java2s;
/*//  w w w. j  a  va  2 s . co  m
This file is part of Sarasvati.
    
Sarasvati is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
    
Sarasvati 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 Lesser General Public License for more details.
    
You should have received a copy of the GNU Lesser General Public
License along with Sarasvati.  If not, see <http://www.gnu.org/licenses/>.
    
Copyright 2008 Paul Lorenz
*/

import java.awt.Font;
import java.awt.Graphics;

public class Main {
    public static void setSizedFont(Graphics g, String text, float maxFontSize, int maxWidth) {
        if (g.getFont().getSize() != maxFontSize) {
            Font newFont = g.getFont().deriveFont(maxFontSize);
            g.setFont(newFont);
        }

        float currentSize = maxFontSize;

        while (g.getFontMetrics().getStringBounds(text, g).getWidth() > maxWidth) {
            g.setFont(g.getFont().deriveFont(--currentSize));
        }
    }
}

Related

  1. maxSize(Component component, String maxString)
  2. maxStringPixelWidth(String[] strings, FontMetrics fm)
  3. paintString(String s, Graphics2D g2, Rectangle2D rect, float horizontal, float vertical)
  4. render(Graphics2D graphics, String str, Rectangle2D box, double xalign, double yalign)
  5. setComponentSize(Component component, int rows, int columns)
  6. shortenString(FontMetrics fm, String str, int maxWidth)
  7. splitStringWithLength(String s, int length, FontMetrics fm)
  8. splitText(String text, String delim, FontMetrics fontMetrics, int width)
  9. stringByTruncatingToFitInWidth(String s, int width, Graphics g, String truncatedSuffix)