我尝试了Java Swing的几个版本,但这个字体大小总是不正确,什么时候能修复?
JButton lButton=new JButton("\u24c1");
lButton.setFont(new Font("Monospaced",0,23));
JButton mButton=new JButton("\u24c2"); // (M) is always smaller, why ?!
mButton.setFont(new Font("Monospaced",0,23));
JButton nButton=new JButton("\u24c3");
nButton.setFont(new Font("Monospaced",0,23));
如下所示,中间的 (M) 总是较小,为什么?!
最佳答案
中间的 M 很可能来自与其他字体不同的字体。带圆圈的 M 字符是“表情符号”的一部分(它可以用作“地铁”符号),因此包含它的字体比带圆圈的 L 或 N 更多。比较 https://unicode-table.com/en/24C1/和 https://unicode-table.com/en/24C2/
要解决此问题,您可能需要考虑使用特定字体而不是“等宽”逻辑字体,如 java.awt.Font API specification 所示。 :
Typically, each logical font name maps to several physical fonts in order to cover a large range of characters
关于java - 在 Java Swing 中,为什么这个字体大小不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62819456/