逐字符绘制文本时的字距调整问题

2024-02-07

我正在尝试逐个字符地绘制字符串,以便为由文本组成的形状添加灯光效果。

while (i != line.length()) {
c = line.substring(i, i + 1);

cWidth = g.getFontMetrics().stringWidth(c);

g.drawString(c, xx += cWidth, yy);
i++;
}

问题是,当将这两个字符打印为字符串时,字符的宽度并不是与另一个字符绘制的实际距离。有什么方法可以在graphics2d中获得正确的距离吗?


Lukas Baran 的答案解决了可能导致输出看起来很糟糕的主要问题。然而,更微妙的问题仍然存在,即您无法以这种方式复制字距调整。这个问题的严重程度可能取决于您使用的字体。为了获得正确的字距调整,你可以这样做:

while (i != line.length()) {
  String c = line.substring(i, i + 1);
  String d = line.substring(0, i + 1);
  int cWidth = g.getFontMetrics().stringWidth(c);
  int dWidth = g.getFontMetrics().stringWidth(d);
  g.drawString(c, xx + dWidth - cWidth, yy);
  i++;
}

这应该将每个字符放置在字距调整应放置的位置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

逐字符绘制文本时的字距调整问题 的相关文章

  • 如何在由子控件组成的 SWT 复合材料上跟踪鼠标?

    我创建了自己的控件 我想跟踪鼠标并添加一个MouseTrackListener 很遗憾MouseEnter and MouseLeave当鼠标移动到我的合成部分 即标签和按钮 上时 也会生成事件 Mouse enter mouse ente
  • TreeMap 删除所有大于某个键的键

    在项目中 我需要删除键值大于某个键的所有对象 键类型为Date 如果重要的话 据我所知TreeMapJava中实现的是红黑树 它是一种二叉搜索树 所以我应该得到O n 删除子树时 但除了制作尾部视图并一一删除之外 我找不到任何方法可以做到这
  • Java Logger 未记录到 Netbeans 中的输出

    我正在 Netbeans 中使用 Maven 启动一个 Java 项目 我编写了一些代码来使用 Logger 类进行日志记录 但是 日志记录似乎不起作用 在程序开始时 我运行 Logger getLogger ProjectMainClas
  • java.lang.ClassNotFoundException:javax.mail.MessagingException

    我想使用 eclipse 将电子邮件从我的 gmail 帐户发送到另一个邮件帐户 我使用 apache tomcat 7 0 34 作为我的 Web 服务器 并使用端口 8080 作为 apache 服务器 HTTP 1 1 并使用 JRE
  • 两个整数乘积的模

    我必须找到c c a b mod m a b c m 是 32 位整数 但 a b 可以超过 32 位 我正在尝试找出一种计算 c 的方法 而不使用 long 或任何 gt 32 位的数据类型 有任何想法吗 如果m是质数 事情可以简化吗 注
  • 与 Eclipse 中的 Java Content Assist 交互

    作为我的插件项目的一部分 我正在考虑与 Eclipse 在 Java 文件上显示的内容辅助列表进行交互 我正在尝试根据一些外部数据对列表进行重新排序 我看过一些有关创建新内容辅助的教程 但没有看到有关更改现有内容辅助的教程 这可能吗 如果是
  • 从 MATLAB 调用 Java?

    我想要Matlab程序调用java文件 最好有一个例子 需要考虑三种情况 Java 内置库 也就是说 任何描述的here http docs oracle com javase 6 docs api 这些项目可以直接调用 例如 map ja
  • Java 中如何将 char 转换为 int? [复制]

    这个问题在这里已经有答案了 我是Java编程新手 我有例如 char x 9 我需要得到撇号中的数字 即数字 9 本身 我尝试执行以下操作 char x 9 int y int x 但没有成功 那么我应该怎么做才能得到撇号中的数字呢 ASC
  • 如何在java中将日期格式从YYMMDD更改为YYYY-MM-DD? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我从机器可读代码中获取日期格式为 YYMMDD 如何将其更改为 YYYY MM DD 例如我收到 871223 YYMMDD 我想把它改成
  • 将人类日期(当地时间 GMT)转​​换为日期

    我正在服务器上工作 服务器正在向我发送 GMT 本地日期的日期 例如Fri Jun 22 09 29 29 NPT 2018在字符串格式上 我将其转换为日期 如下所示 SimpleDateFormat simpleDateFormat ne
  • 如何使用 JMagick 转换色彩空间?

    如何使用 JMagick API 转换色彩空间 例如 CMYK gt RGB 和 RGB gt CMYK None
  • 在 Java 中获取并存储子进程的输出

    我正在做一些需要我开始子处理 命令提示符 并在其上执行一些命令的事情 我需要从子进程获取输出并将其存储在文件或字符串中 这是我到目前为止所做的 但它不起作用 public static void main String args try R
  • JDBC 时间戳和日期 GMT 问题

    我有一个 JDBC 日期列 如果我使用 getDate 则会得到 date 仅部分2009 年 10 月 2 日但如果我使用 getTimestamp 我会得到完整的 date 2009 年 10 月 2 日 13 56 78 890 这正
  • 如何在字符串vba中包含引号

    我想存储以下文本 Test1 Monday Test Abcdef 全部在字符串中包含引号 我知道要在字符串中包含引号 我必须包含 之前 但在这里这不是一个很好的解决方案 因为我在文本中有太多这样的解决方案 知道如何一次完成这一切吗 您有两
  • Java Swing - 如何禁用 JPanel?

    我有一些JComponents on a JPanel我想在按下 开始 按钮时禁用所有这些组件 目前 我通过以下方式显式禁用所有组件 component1 setEnabled false 但是有什么办法可以一次性禁用所有组件吗 我尝试禁用
  • 为什么\0在java中不同系统中打印不同的输出

    下面的代码在不同的系统中打印不同的输出 String s hello vsrd replace 0 System out println s 当我在我的系统中尝试时 Linux Ubuntu Netbeans 7 1 它打印 When I
  • 更改特定字符串的颜色

    有谁知道如果将特定单词输入文本区域 我如何更改它的颜色 例如 如果用户输入 你好我的朋友 它会动态地将 你好 更改为绿色 在google上花了很多时间 找不到任何相关的东西 谢谢 textareas 的设计目的不是选择性着色
  • 部署 .war 时出现 Glassfish 服务器错误:部署期间发生错误:准备应用程序时出现异常:资源无效

    我正在使用以下内容 NetBeans IDE 7 3 内部版本 201306052037 爪哇 1 7 0 17 Java HotSpot TM 64 位服务器虚拟机 23 7 b01 NetBeans 集成 GlassFish Serve
  • 将 JScrollPane 添加到 JFrame

    我有一个关于向 Java 框架添加组件的问题 我有一个带有两个按钮的 JPanel 和一个添加了 JTable 的 JScrollPane 我想将这两个添加到 JFrame 中 我可以将 JPanel 添加到 JFrame 或将 JScro
  • Java 正则表达式中的逻辑 AND

    是否可以在 Java Regex 中实现逻辑 AND 如果答案是肯定的 那么如何实现呢 正则表达式中的逻辑 AND 由一系列堆叠的先行断言组成 例如 foo bar glarch 将匹配包含所有三个 foo bar 和 glarch 的任何

随机推荐

  • CloudKit 中私人存储的数据是否存储在用户的 iCloud 帐户中?

    我的应用程序涉及用户创建数据并将其保存到他们的私人数据库中 这些数据会占用他们的 iCloud 帐户空间 还是会成为我的 CloudKit 存储配额的一部分 谢谢 这包含在为 CloudKit 进行设计 https developer ap
  • VBA 未使用 Now() 返回正确的日期

    我有一个简单的代码 VBA 无法返回正确的日期 Sub Test Date Debug Print Format Month Now mmm Debug Print Month Now Debug Print Now End Sub 返回
  • 在图像上添加动态文本

    我正在为用户创建一个网站 他们可以在其中创建自定义徽标 为此 我需要一种工具来从用户将填写的文本框中添加动态文本 然后文本应出现在所选图像上 有没有什么办法 比如说Javascript 可以通过它来实现上述场景 对于我如何做到这一点的任何建
  • RecyclerView Grid - 定义每行的项目数

    我通常反对在没有代码的情况下发布问题 但我没有代码可以显示 我终于将我的项目从 listviews 和 gridviews 转换为 recyclerView 在一堂课中 我使用一个小型网格视图来放置从服务器拉取的项目 每行的最大项目数为 3
  • 尝试在 Rails 中调用我的服务时出现“未初始化常量”

    我正在使用 Rails 4 2 3 我在控制器中有这一行 service XACTEService new Event 2015 06 01 Zoo 有问题的类在 app services XACTEService rb 中定义 然而 在访
  • XmlSerializer 列表项元素名称

    我有课PersonList XmlRoot Persons PersonList List
  • Web 应用程序的传入请求是否有配额?

    我正在运行一个脚本 该脚本通过 URL 访问更改 Google 表格中的行 部署为 Web 应用程序 例如macroUrl sheet SheetName key KeyName value ValueName 这非常适合我的需要 但我不确
  • 与 TypeScript 混合模式?

    我读过这篇文章 https justinfagnani com 2015 12 21 real mixins with javascript classes https justinfagnani com 2015 12 21 real m
  • 增加 HTML 正文中的光标大小

    有没有什么方法可以在基于浏览器的应用程序中以编程方式增加光标的大小CSS or jQuery 我可以用 CSS 改变光标的类型 就像这样 body cursor crosshair 但我在 CSS 中没有看到增加光标大小的规定 没有关于光标
  • 你能让 ERB 在渲染时正确缩进吗?

    我有几个部分包含在 Rails 中application html erb file 但生成的 HTML 不会保留我的缩进 格式 我被告知第一行以与调用相同的缩进级别呈现 partial html erb 但部分中的所有后续行都会左对齐 这
  • jQuery 图片库非功能性淡入淡出效果

    这是一个简单的图像库脚本 用于淡入和淡出带有背景图像的 div 它很慢而且不能正常工作 看起来所有图像都一起出现和消失 没有任何动画 该画廊应该将每张图像淡出到下一张图像中 function gallery timerp window se
  • Imagemagick 将每个边缘切掉 30px(宽度和高度可变)

    我需要将每边切掉 30px 左上右下 我试过了crop并且 chop 30x30但这似乎只在一方面起作用 convert verbose density 150 trim pdfs test test pdf quality 80 chop
  • 源集 - Groovy -> Kotlin DSL

    sourceSets main java srcDirs src main kotlin src main java res srcDirs src main res layouts activity src main res layout
  • 使用管理器和向量时出现内存错误

    我想创建一个包含多个对象的管理器 并且必须使用它才能实际创建对象 这些对象将其信息保存在智能指针中 这就是我的实现方式 struct Object std shared ptr
  • 使用按钮事件 tkinter 在画布中创建图像

    我需要向 Tkinter gui 中的按钮添加一个事件 该事件将在画布中创建图像 我该怎么做 谢谢大家 它有效 但我需要获取同一图像文件的动态数字图像 但每次我创建新图像时 旧图像都会被垃圾收集 我想不出该怎么办 我想在画布上有同一图像的多
  • Java:Eclipse 和 javac 中的泛型处理方式不同

    说我们有课 public class Entry
  • 如何在 php / Laravel 5 中解析 SimpleXMLElement?

    我使用 Guzzle 向后端的外部 API 发出 XML 请求 这是我创建 Guzzle 客户端的地方 client new Client GuzzleHttp Client 这是我提出请求的地方 request client gt req
  • 无法将ubi附加到mtd分区

    我们在基于 DM365 的定制板中使用 MT29F8G08ABABA 我们使用的是 NAND 启动 RootFS采用UBIFS格式 Below is basic achitecture of the NAND 我正在使用以下命令来创建 ub
  • 排队操作(不是效果)在一段时间后执行。

    我想知道是否有一种好的方法可以将 jQuery 函数排队以在设定的时间后执行 这不会暂停其他函数的执行 只会暂停链中后续函数的执行 也许我设想的一个例子可以说明 alert show wait 5000 lt this bit hide 我
  • 逐字符绘制文本时的字距调整问题

    我正在尝试逐个字符地绘制字符串 以便为由文本组成的形状添加灯光效果 while i line length c line substring i i 1 cWidth g getFontMetrics stringWidth c g dra