当我看到javadoc时,FontMetric.getAscent()我看到:
字体上升是从字体的基线到大多数字母数字字符顶部的距离.Font中的某些字符可能会延伸到字体上升线之上.
但我写了一个快速的演示程序,我看到了这个:

其中每行文本的4条水平线是:
getDescent()getAscent()getHeight()注意getAscent()行和字符顶部之间的空格.我看过大多数字体和大小,总是存在这种差距.(而字体下降看起来恰到好处.)是什么给出的?
package com.example.fonts;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.GraphicsEnvironment;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.JTextPane;
import javax.swing.SpinnerNumberModel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
public class FontMetricsExample extends JFrame
{
static final int marg = 10;
public FontMetricsExample()
{
super(FontMetricsExample.class.getSimpleName());
JPanel panel = new JPanel(new BorderLayout());
JPanel fontPanel = …Run Code Online (Sandbox Code Playgroud)