Java FontMetrics abbreviate(String str, FontMetrics fm, int width)

Here you can find the source of abbreviate(String str, FontMetrics fm, int width)

Description

Abbreviate a String by simply truncating it.

License

Open Source License

Parameter

Parameter Description
str the String to abbreviate
fm the FontMetrics for measuring the String length
width the maximum string width, in pixels

Return

an abbreviated String

Declaration

public static String abbreviate(String str, FontMetrics fm, int width) 

Method Source Code


//package com.java2s;
/*//w w  w  .  j  a  v a 2  s. c  o m
 * #%L
 * Cytoscape Work Swing Impl (work-swing-impl)
 * $Id:$
 * $HeadURL:$
 * %%
 * Copyright (C) 2006 - 2013 The Cytoscape Consortium
 * %%
 * This program 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 2.1 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 Lesser Public License for more details.
 * 
 * You should have received a copy of the GNU General Lesser Public 
 * License along with this program.  If not, see
 * <http://www.gnu.org/licenses/lgpl-2.1.html>.
 * #L%
 */

import java.awt.FontMetrics;

public class Main {
    /**
     * Abbreviate a String by simply truncating it.
     * @param str the String to abbreviate
     * @param fm the FontMetrics for measuring the String length
     * @param width the maximum string width, in pixels
     * @return an abbreviated String
     */
    public static String abbreviate(String str, FontMetrics fm, int width) {
        int lastblank = 0, nchars = 0, cumx = 0;
        while (cumx < width && nchars < str.length()) {
            if (Character.isWhitespace(str.charAt(nchars))) {
                lastblank = nchars;
            }
            cumx += fm.charWidth(str.charAt(nchars));
            nchars++;
        }
        if (nchars < str.length() && lastblank > 0) {
            nchars = lastblank;
        }
        return (nchars > 0 ? str.substring(0, nchars) : str);
    }
}

Related

  1. abbreviateName(String str, FontMetrics fm, int width)
  2. adjustFontSizeToGetPreferredWidthOfLabel(JLabel jLabel, int initialWidth)
  3. alignRight(FontMetrics fm, String string, int align)
  4. clipString(FontMetrics fm, String text, int availableWidth)