gpt4 book ai didi

Java - 如何判断哪些字体不渲染?

转载 作者:行者123 更新时间:2023-11-30 04:19:25 28 4
gpt4 key购买 nike

我有:

Font[] fonts = 
java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts();

然后我想使用自定义渲染器在 JComboBox 中渲染它,但是我发现某些字体根本不渲染,或者看起来很糟糕。有些还在 JComboBox 中占用 100-200 像素的高度,一些我根本不熟悉的奇怪字体。因此,例如,第 4 项无法读取,而第 5 项(所选的蓝色项)很大,即使向下滚动也不会显示任何字符。

enter image description here

我尝试过删除有问题的字体,但除了白名单之外我找不到其他方法,这并不理想。

我发现的最好的文章是:

但第二个实际上只是如何检查特定字符,而不是整体渲染很糟糕。

我还尝试了 getAvailableFontFamilyNames(),虽然这减少了列表,但 JComboBox 中仍然出现一些渲染得很差的字体。我所说的渲染不良是指在很高的高度下看不见。因此尝试 canDisplay('a') 或类似的方法也不起作用,因为它仍然返回 true;

最佳答案

没有“看起来很糟糕”的衡量标准,但您可以将所需的字符串绘制到屏幕外缓冲区中,并查看每种字体下字符串“占据”的矩形大小。

参见here了解如何做到这一点。

这样你就可以用所有字体渲染相同的字符串,并找出那些产生太小或太大“矩形”的字符串 - 这应该消除当前弄乱你的用户界面的所有字体。

关于Java - 如何判断哪些字体不渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17481226/

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