當前位置: 首頁>>代碼示例>>Java>>正文


Java JLabel.getFontMetrics方法代碼示例

本文整理匯總了Java中javax.swing.JLabel.getFontMetrics方法的典型用法代碼示例。如果您正苦於以下問題:Java JLabel.getFontMetrics方法的具體用法?Java JLabel.getFontMetrics怎麽用?Java JLabel.getFontMetrics使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在javax.swing.JLabel的用法示例。


在下文中一共展示了JLabel.getFontMetrics方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: computeFitText

import javax.swing.JLabel; //導入方法依賴的package包/類
private static String computeFitText(JLabel label) {
    String text = label.getText();
    if(text == null) text = "";
    if (text.length() <= VISIBLE_START_CHARS + 3) return text;
    
    Icon icon = label.getIcon();
    int iconWidth = icon != null ? icon.getIconWidth() : 0;
    
    FontMetrics fm = label.getFontMetrics(label.getFont());
    int width = label.getSize().width - iconWidth;

    String sufix = "...";                                                   // NOI18N
    int sufixLength = fm.stringWidth(sufix);
    int desired = width - sufixLength;
    if (desired <= 0) return text;

    for (int i = 0; i <= text.length() - 1; i++) {
        String prefix = text.substring(0, i);
        int swidth = fm.stringWidth(prefix);
        if (swidth >= desired) {
            return prefix.length() > 0 ? prefix + sufix: text;
        }
    }
    return text;
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:26,代碼來源:QueryTableCellRenderer.java

示例2: leak

import javax.swing.JLabel; //導入方法依賴的package包/類
private static void leak() {
    Map<TextAttribute, Object> textAttributes = new HashMap<>();
    textAttributes.put(TextAttribute.FAMILY, "Sans Serif");
    textAttributes.put(TextAttribute.SIZE, 12);
    textAttributes.put(TextAttribute.KERNING, TextAttribute.KERNING_ON);
    Font font = Font.getFont(textAttributes);
    JLabel label = new JLabel();
    int dummy = 0;
    for (int i = 0; i < 500; i++) {
        if (i % 10 == 0) System.out.println("Starting iter " + (i+1));
        for (int j = 0; j <1000; j++) {
            FontMetrics fm = label.getFontMetrics(font);
            dummy += SwingUtilities.computeStringWidth(fm, Integer.toString(j));
        }
    }
    System.out.println("done " + dummy);
}
 
開發者ID:lambdalab-mirror,項目名稱:jdk8u-jdk,代碼行數:18,代碼來源:KerningLeak.java

示例3: setFittingLabelSize

import javax.swing.JLabel; //導入方法依賴的package包/類
public static void setFittingLabelSize(JLabel label, int width) {
	int wordWidth, lines=1, size=0;
	if(width<=0||label.getText().isEmpty())
		return;
	StringTokenizer words = new StringTokenizer(label.getText());
	FontMetrics metrics = label.getFontMetrics(label.getFont());
	while(words.hasMoreTokens())
		if((size+=(wordWidth=metrics.stringWidth(words.nextToken())))>width) {
			size = wordWidth;
			lines++;
		}
	label.setPreferredSize(new Dimension(width, lines*metrics.getHeight()));
	label.revalidate();
}
 
開發者ID:kristian,項目名稱:JDigitalSimulator,代碼行數:15,代碼來源:Guitilities.java

示例4: setDefaultAntiAliasingState

import javax.swing.JLabel; //導入方法依賴的package包/類
/**
 * Sets anti-aliasing to whatever the user's desktop value is.
 *
 * @see #getAntiAliasingEnabled()
 */
private void setDefaultAntiAliasingState() {

	// Most accurate technique, but not available on all OSes.
	aaHints = RSyntaxUtilities.getDesktopAntiAliasHints();
	if (aaHints==null) {

		Map<RenderingHints.Key, Object> temp =
				new HashMap<RenderingHints.Key, Object>();

		// In Java 6+, you can figure out what text AA hint Swing uses for
		// JComponents...
		JLabel label = new JLabel();
		FontMetrics fm = label.getFontMetrics(label.getFont());
		Object hint = null;
		//FontRenderContext frc = fm.getFontRenderContext();
		//hint = fm.getAntiAliasingHint();
		try {
			Method m = FontMetrics.class.getMethod("getFontRenderContext");
			FontRenderContext frc = (FontRenderContext)m.invoke(fm);
			m = FontRenderContext.class.getMethod("getAntiAliasingHint");
			hint = m.invoke(frc);
		} catch (RuntimeException re) {
			throw re; // FindBugs
		} catch (Exception e) {
			// Swallow, either Java 1.5, or running in an applet
		}

		// If not running Java 6+, default to AA enabled on Windows where
		// the software AA is pretty fast, and default (e.g. disabled) on
		// non-Windows.  Note that OS X always uses AA no matter what
		// rendering hints you give it, so this is a moot point there.
		//System.out.println("Rendering hint: " + hint);
		if (hint==null) {
			String os = System.getProperty("os.name").toLowerCase();
			if (os.contains("windows")) {
				hint = RenderingHints.VALUE_TEXT_ANTIALIAS_ON;
			}
			else {
				hint = RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT;
			}
		}
		temp.put(RenderingHints.KEY_TEXT_ANTIALIASING, hint);

		aaHints = temp;

	}

	// We must be connected to a screen resource for our graphics
	// to be non-null.
	if (isDisplayable()) {
		refreshFontMetrics(getGraphics2D(getGraphics()));
	}
	repaint();

}
 
開發者ID:Thecarisma,項目名稱:powertext,代碼行數:61,代碼來源:RSyntaxTextArea.java


注:本文中的javax.swing.JLabel.getFontMetrics方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。