Here you can find the source of abbreviate(String str, FontMetrics fm, int width)
Parameter | Description |
---|---|
str | the String to abbreviate |
fm | the FontMetrics for measuring the String length |
width | the maximum string width, in pixels |
public static String abbreviate(String str, FontMetrics fm, int width)
//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); } }