Java Swing Font Metrics getClippedText(String text, FontMetrics fm, int maxWidth)

Here you can find the source of getClippedText(String text, FontMetrics fm, int maxWidth)

Description

get Clipped Text

License

Open Source License

Declaration

public static String getClippedText(String text, FontMetrics fm,
            int maxWidth) 

Method Source Code

//package com.java2s;
/*/* www  .j  av  a2  s .co m*/
 * Copyright (c) 2002 and later by MH Software-Entwicklung. All Rights Reserved.
 *  
 * JTattoo is multiple licensed. If your are an open source developer you can use
 * it under the terms and conditions of the GNU General Public License version 2.0
 * or later as published by the Free Software Foundation.
 *  
 * see: gpl-2.0.txt
 * 
 * If you pay for a license you will become a registered user who could use the
 * software under the terms and conditions of the GNU Lesser General Public License
 * version 2.0 or later with classpath exception as published by the Free Software
 * Foundation.
 * 
 * see: lgpl-2.0.txt
 * see: classpath-exception.txt
 * 
 * Registered users could also use JTattoo under the terms and conditions of the 
 * Apache License, Version 2.0 as published by the Apache Software Foundation.
 *  
 * see: APACHE-LICENSE-2.0.txt
 */

import javax.swing.*;

import java.awt.*;

public class Main {
    private static final String ELLIPSIS = "...";

    public static String getClippedText(String text, FontMetrics fm,
            int maxWidth) {
        if ((text == null) || (text.length() == 0)) {
            return "";
        }
        int width = SwingUtilities.computeStringWidth(fm, text);
        if (width > maxWidth) {
            int totalWidth = SwingUtilities
                    .computeStringWidth(fm, ELLIPSIS);
            for (int i = 0; i < text.length(); i++) {
                totalWidth += fm.charWidth(text.charAt(i));
                if (totalWidth > maxWidth) {
                    return text.substring(0, i) + ELLIPSIS;
                }
            }
        }
        return text;
    }
}

Related

  1. computeStringWidth(FontMetrics fontMetrics, String str)
  2. drawLine(Graphics g, FontMetrics fm, Rectangle rect, String text, int hAlign, int y, int mnemonic)
  3. getBreakLocation(Segment s, FontMetrics metrics, int x0, int x, TabExpander e, int startOffset)
  4. getClippedText(String text, FontMetrics fm, int maxWidth)
  5. getClippedText(String text, FontMetrics fm, int maxWidth)
  6. getDefaultLabelFontMetrics()
  7. getFontMetrics(final JComponent c, final Graphics g)
  8. getFontMetrics(Font font)
  9. getFontMetrics(Font font)