gpt4 book ai didi

java - 在 Java 中测试字体是否等宽

转载 作者:搜寻专家 更新时间:2023-10-30 21:06:39 45 4
gpt4 key购买 nike

我正在尝试列出用户机器上所有可用的等宽字体。我可以通过以下方式获取 Swing 中的所有字体系列:

String[] fonts = GraphicsEnvironment.getLocalGraphicsEnvironment()
.getAvailableFontFamilyNames();

有没有办法找出其中哪些是等宽的?

提前致谢。

最佳答案

一个更简单的方法,不需要制作 BufferedImage 来获取 Graphics 对象等:

    Font fonts[] = GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts();
List<Font> monoFonts1 = new ArrayList<>();

FontRenderContext frc = new FontRenderContext(null, RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT, RenderingHints.VALUE_FRACTIONALMETRICS_DEFAULT);
for (Font font : fonts) {
Rectangle2D iBounds = font.getStringBounds("i", frc);
Rectangle2D mBounds = font.getStringBounds("m", frc);
if (iBounds.getWidth() == mBounds.getWidth()) {
monoFonts1.add(font);
}
}

关于java - 在 Java 中测试字体是否等宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/922052/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com