org.antlr.v4.gui.SystemFontMetrics Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of virtdata-lib-realer Show documentation
Show all versions of virtdata-lib-realer Show documentation
With inspiration from other libraries
/*
* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
* Use of this file is governed by the BSD 3-clause license that
* can be found in the LICENSE.txt file in the project root.
*/
package org.antlr.v4.gui;
import java.awt.*;
import java.awt.font.FontRenderContext;
import java.awt.font.TextLayout;
import java.awt.image.BufferedImage;
/**
*
* @author Sam Harwell
*/
public class SystemFontMetrics extends BasicFontMetrics {
protected final Font font;
public SystemFontMetrics(String fontName) {
BufferedImage img = new BufferedImage(40, 40, BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D graphics = GraphicsEnvironment.getLocalGraphicsEnvironment().createGraphics(img);
FontRenderContext fontRenderContext = graphics.getFontRenderContext();
this.font = new Font(fontName, Font.PLAIN, 1000);
double maxHeight = 0;
for (int i = 0; i < 255; i++) {
TextLayout layout = new TextLayout(Character.toString((char)i), font, fontRenderContext);
maxHeight = Math.max(maxHeight, layout.getBounds().getHeight());
super.widths[i] = (int)layout.getAdvance();
}
super.maxCharHeight = (int)Math.round(maxHeight);
}
public Font getFont() {
return font;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy