本文整理汇总了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;
}
示例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);
}
示例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();
}
示例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();
}