当前位置: 首页>>代码示例>>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;未经允许,请勿转载。