问题标签 [fontmetrics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
157 浏览

java - FontMetrics 返回垃圾字体下降

我在 Eclipse 中遇到了一个奇怪的问题,即使经过大量搜索,在这方面也没有发现任何错误。我的问题是 FontMetrics Class 中的句柄字段。由于 API 说它依赖于平台,我对此无能为力。问题是这样的:

我必须将一些由 draw2d 小部件和连接组成的图表导出到 Word 和 PDF。到目前为止,导出功能可作为编辑器工具栏的操作使用,其中绘制图表。它一直运行良好。我所做的就是将 FigureCanvas 绘制到 SWT 图像,然后将其保存到文件中。我有可用的 API,然后将其插入 Word/PDF。现在,我需要离线,即无需在屏幕上实际绘制图表。我做了这样的事情来实现这一点:

当我第一次运行它时,两个 Log 语句都告诉我一个好故事:


外壳尺寸::: 点 {72, 98} 外壳尺寸::: 点 {1216, 524}


但是当我第二次运行相同的代码时,没有关闭应用程序,我得到:


外壳尺寸::: 点 {72, 98} 外壳尺寸::: 点 {1216, 1945541082 }


外壳的大高度值破坏了一切。经过激烈的调试,我发现第二次使用的 FlowPage 得到了错误的 Font 下降值。FontMetrics.getDescent()方法返回一个随机大值。

我不确定该如何进行。我已经处置了我第一次使用的所有资源。Display、Shell、Composite、Canvas,甚至 GC 和 SWTGraphics。谁能告诉我它是否是一个错误?如果没有,知道如何在这里找到问题吗?

0 投票
4 回答
15298 浏览

java - Java中的字符串长度(以像素为单位)

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

0 投票
2 回答
694 浏览

java - SWT Table 在绘制文本时使用哪个文本边距?

我有一个相对简单的问题 - 但我无法在任何地方找到任何答案。

我在我的应用程序中使用了一个简单的 SWT 表格小部件,它只在单元格中显示文本。我有一个增量搜索功能,如果它们匹配,我想突出显示所有单元格中的文本片段。

所以当输入“a”时,所有的“a”都应该被突出显示。

为此,我添加了一个SWT.EraseItem监听器来干扰背景绘图。如果当前单元格的文本包含搜索字符串,我会使用 -easy 找到位置并计算文本内的相对 x 坐标event.gc.stringExtent

有了它,我只是在事件“后面”绘制矩形。

现在,这有一个缺陷。表格不会绘制没有边距的文本,所以我的 x 坐标并不真正匹配 - 它稍微偏离了几个像素!但是有多少??我在哪里检索表格自己的绘图将使用的单元格的文本边距?没有线索。找不到任何东西。

额外的问题:表格的绘制方法也会缩短文本并添加“...”如果它不适合单元格。唔。我的事件查找器获取 TableItem 的文本,因此还尝试标记实际上不可见的事件,因为它们被“...”消耗。如何在 EraseItem 绘制处理程序中获取缩短的文本而不是“真实”文本?

0 投票
1 回答
553 浏览

qt - 如何在paintEvent之外获取QPainter的字体度量?

如何在paintEvent绘图方法之外获取QPainter的字体度量?在屏幕上绘画之前我需要这个。

0 投票
1 回答
3664 浏览

java - 右对齐图像上的文本

如何使这个正确对齐

实际输出

在此处输入图像描述

所需输出

在此处输入图像描述

输出:-

0 投票
1 回答
1049 浏览

java - FontMetrics 生成 NullPointerException

我为 Java 中的簿记程序创建的 GUI 的一部分需要显示不同的字符串。在显示此字符串之前,它必须在适当的地方添加换行符。为此,我创建了一个扩展 JTextArea 的类,并像这样重写了 setText() 方法:

代替“// Instatiate FontMetrics”,我尝试了一些不同的东西。起初我尝试使用“new”创建一个 FontMetrics 对象......

...只是发现您无法以这种方式实例化 FontMetrics。我尝试使用 getFontMetrics(font) 检索 FontMetrics 对象,从这个问题的答案中获取默认的 swing 字体:

如何获得 Swing JTabbedPane 标签的默认字体?

我的代码如下所示:

这引发了 NullPointerException。我也试过:

这也给了我一个 NullPointerException。也许我不明白如何使用 FontMetrics。任何见解都会受到赞赏。

编辑:好的,现在我又再次尝试了上面的两个片段,将 UIManager.getDefaults().getFont(...) 替换为 getFont()。抛出相同的 NullPointerException。

0 投票
1 回答
726 浏览

java - Java 中 FontMetrics 的替代方案

我的代码使用了已弃用的 getFontMetrics()。有什么替代方案?

有什么建议么 ?

0 投票
2 回答
236 浏览

ios - 计算未知 NSString 的 CGSize

如何找到我只知道其最大字符数但不知道确切字符串的未知字符串的 CGSize?

我知道您可以使用 NSString 上的“sizeWithFont”方法计算特定 NSString 的大小,如下所示:

但是当您不知道确切的字符串并且只知道字符串可能包含的字符数时,我正在寻找一种方法。

0 投票
1 回答
245 浏览

android - Android:以编程方式计算 Listview 字体指标

我有一个字符串,我需要截断字符串,使其适合 ListView 中的一行。

谁能指出我正确的方向?

0 投票
4 回答
5352 浏览

java - Draw Text in Middle of the Screen

I'm trying to draw text in the middle of my JFrame window, and it's off by a little bit.

Here's what I've tried :