相关疑难解决方法(0)

Java:FontMetrics上升不正确?

当我看到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)

java fontmetrics

16
推荐指数
2
解决办法
6984
查看次数

标签 统计

fontmetrics ×1

java ×1