Tag: fontmetrics

Java:获取具有特定高度(以像素为单位)的字体

使用FontMetrics很容易确定字体的渲染高度,但另一种方法呢? 如何获得适合特定高度(以像素为单位)的字体? “给我Verdana的尺寸从上升到下降30像素高。” 我如何向Java询问此问题?

Java Graphics:从Font构造FontMetrics,没有Graphics2D

已知 给定FontMetrics FontMetrics有一个受保护的构造函数。 题: 给定一个Font对象,是否有一种方法可以构建FontMetrics对象而无需通过Graphics2D.setFont , Graphics2D.getFontMetric() ? 上下文 我正在使用像渲染算法这样的TeX。 我需要计算* .pfb文件中各种字符的边界框等。 我可以从* .pfb文件构造一个Font对象。 我需要一个FontMetrics对象来获得上升,下降,宽度。 对于我来说,构建一个未使用的中间Graphics对象只是为了得到FontMetrics似乎非常难看。

Java中字符串长度(以像素为单位

有没有办法计算字符串的长度(以像素为单位)给定某个java.awt.Font对象,它不使用任何GUI组件?

Java:FontMetrics上升不正确?

当我查看FontMetric.getAscent()的javadoc时,我看到: 字体上升是从字体的基线到大多数字母数字字符顶部的距离。 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 […]

Java – 没有图形的FontMetrics

如何在不使用Graphics的情况下获取FontMetrics? 我想在构造函数中获取FontMetrics,现在我这样做: BufferedImage bi = new BufferedImage(5, 5, BufferedImage.TYPE_INT_RGB); FontMetrics fm = bi.getGraphics().getFontMetrics(font); int width = fm.stringWidth(pattern); int height = fm.getHeight();

Java:获得FontMetrics实例的更方便的方法

是否有更友好的方式来获取FontMetrics的实例 FontMetrics fm = Graphics.getFontMetrics(Font); 我讨厌这种方式,因为下面的例子: 如果您想在游戏中创建一个菜单,并且您希望屏幕中心的所有菜单项都需要fontmetrics。 但是,大多数情况下,菜单项是可点击的。 所以我创建了一个Rectangles数组,所有的矩形都适合于项目,所以当按下鼠标时,我可以简单地使用 for (int i = 0; i < rects.length; i++) if (rects[i].contains(mouseX, mouseY)) { … } 但是为了创建rects,我还需要FontMetrics作为它们的坐标。 所以这意味着我必须在菜单的paint-method中构造所有的矩形。 所以我想要一种获取FontMetrics的方法,这样我就可以在构造函数调用的方法中构造Rectangles。