java - 在 Java Swing 中,为什么这个字体大小不正确?

标签 java swing font-size

我尝试了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) 总是较小,为什么?!

enter image description here

最佳答案

中间的 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/

相关文章:

java - 如何将用户输入存储到文本文件中并显示所有数据?

java - 试图弄清楚继承和多态性

java - 带图形的循环 - 生成图形时的错误

java - 如何在java中使用JFileChooser选择zip文件

java - 容器和面板有什么区别?

java - 更改焦点(JTextArea 和 JOptionPane)

java - 单击按钮后 keylistener 不工作

java - 为什么 Windows LookAndFeel 使字体太小?

html - 使用 li :before? 时如何正确调整元素符号大小

ionic-framework - 使用 Ionic 的移动辅助功能不起作用