我有:
Font[] fonts =
java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts();
然后我想用自定义渲染器在 JComboBox 中渲染,但是我发现有些字体根本不渲染,或者只是看起来很糟糕。有些在 JComboBox 中也有 100-200 像素的高度,一些我完全不熟悉的奇怪字体。因此,例如,第 4 项不可读,而第 5 项(选定的蓝色项)很大,即使向下滚动也不会显示任何字符。
我试图删除有问题的字体,但除了不理想的白名单之外,我找不到其他方法。
我发现的最好的文章是:
但第二个实际上只是如何检查特定字符而不是整体渲染效果不佳。
我也尝试过getAvailableFontFamilyNames()
,虽然这减少了列表,但 JComboBox 中仍然出现了几个渲染不良的字体。严重渲染是指高度不可见。所以尝试canDisplay('a')
或类似的东西也不起作用,因为它仍然返回 true;