Java 中的弯曲文本

2023-12-25

我正在寻找最简单的方法来绘制一些 我的应用程序上椭圆对象周围的文本。
我需要创造一种“拥抱”的感觉。

到目前为止,我已经使用 Graphics2D 类来打印我的绘图 在屏幕上,我的“画布”是 BufferedImage。

我的椭圆的宽度和高度分别恒定为 50,50。

有什么建议么?


这是弯曲文本的示例:

// slightly modified from the original:
// http://examples.oreilly.com/9781565924840/examples/RollingText.java 
import javax.swing.*;
import java.awt.*;
import java.awt.font.*;
import java.awt.geom.*;

public class RollingText extends JFrame {

    RollingText() {
        super("RollingText v1.0");
        super.setSize(650, 350);
        super.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public void paint(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;

        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

        String s = "What's our vector, Victor?";
        Font font = new Font("Serif", Font.PLAIN, 24);
        FontRenderContext frc = g2.getFontRenderContext();
        g2.translate(40, 80);

        GlyphVector gv = font.createGlyphVector(frc, s);
        int length = gv.getNumGlyphs();
        for (int i = 0; i < length; i++) {
            Point2D p = gv.getGlyphPosition(i);
            double theta = (double) i / (double) (length - 1) * Math.PI / 4;
            AffineTransform at = AffineTransform.getTranslateInstance(p.getX(), p.getY());
            at.rotate(theta);
            Shape glyph = gv.getGlyphOutline(i);
            Shape transformedGlyph = at.createTransformedShape(glyph);
            g2.fill(transformedGlyph);
        }
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new RollingText().setVisible(true);
            }
        });
    }
}

其产生:

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

Java 中的弯曲文本 的相关文章

  • Java - 将无符号十六进制字符串解析为有符号长整型

    我有一堆十六进制字符串 其中之一是 d1bc4f7154ac9edb 这是 3333702275990511909 的十六进制值 如果执行 Long toHexString d1bc4f7154ac9edb 这与您得到的十六进制相同 现在
  • Java:为什么.class文件中的方法类型包含返回类型,而不仅仅是签名?

    class 文件的常量池中有一个 NameAndType 结构 它用于动态绑定 该类可以 导出 的所有方法都被描述为 签名 返回类型 喜欢 getVector Ljava util Vector 当某些 jar 中方法的返回类型发生更改时
  • ZeroDateTimeBehavior=convertToNull 在使用 hibernate 的 jdbc url 中不起作用

    通过 extern 属性文件 url 指定如下 jdbc mariadb xxxxx 3306 xxxxx zeroDateTimeBehavior convertToNull 连接工作正常并且能够查询数据库 通过休眠 我创建了一个映射到带
  • Java 错误和警告列表

    在哪里 如何获得所有 java 和 javac 的错误和警告消息的列表 This http mindprod com jgloss compileerrormessages html我认为页面是您所需要的
  • Spring Data Jpa OneToMany 同时保存子实体和父实体?

    这是我的父实体 注意 为了简洁起见 删除了 getter setter lombok 注释 Entity public class Board Id GeneratedValue strategy GenerationType IDENTI
  • 如何杀死 Java Future?

    我正在开发的服务使用 Future 来并行运行多个任务 每个任务最多可能需要一分钟才能完成 然而 外部库似乎有问题 因为在某些情况下 2 的时间 它不会返回 在这些情况下 我想给出 2 分钟的等待时间 如果还没有返回 我想杀死 future
  • Java:一种将 Mime(内容)类型与 CommonsMultipartFile 中的文件扩展名相匹配的方法

    在我的公司 出于额外原因 我需要将 mime 类型与文件扩展名进行比较 我有一个CommonsMultipartFile 我正在尝试找出进行这种比较的最佳方法 我见过一个MimetypesFileTypeMap 但不确定这是否适用于此 我试
  • 是否可以使用 Apache Tika 提取表信息?

    我正在寻找 pdf 和 MS Office 文档格式的解析器 以从文件中提取表格信息 当我看到 Apache Tika 时 正在考虑编写单独的实现 我能够从任何这些文件格式中提取全文 但我的要求是提取表格数据 我希望有 2 列采用键值格式
  • 生成一定长度的所有排列

    假设我们有一个字母表 abcdefghiklimnop 如何以有效的方式以五个一组的形式重复该字母表来递归生成排列 几天来我一直在为此苦苦挣扎 任何反馈都会有帮助 本质上这与 生成给定字符串的所有排列 https stackoverflow
  • JFrame 在连续运行代码时冻结

    我在使用时遇到问题JFrame 它会冻结 连续运行代码 下面是我的代码 点击时btnRun 我调用了该函数MainLoop ActionListener btnRun Click new ActionListener Override pu
  • 为休息服务实施 JUnit 测试

    我必须为我的休息服务实现一些 JUnit 测试 例如 这是我的休息服务之一 Path dni fe public class HelloWorld POST Path home Consumes MediaType APPLICATION
  • 为 REST API 生成 Swagger UI 文档

    我使用 Java 中的 JAX RS Jersey 开发了 REST API 我想为其转换 生成基于 Swagger 的 UI 文档 谁能以简单的方式告诉我如何做到这一点的精确 步骤 很抱歉 他们网站上给出的步骤对我来说有点模糊 有多种方法
  • 在 Eclipse RCP 应用程序中禁用插件贡献

    我经常遇到这个问题 但尚未找到解决方案 每当我编写一个新的基于 Eclipse RCP 的应用程序并包含来自 Eclipse 平台的插件时 我都会 继承 其中一些插件的 UI 贡献 大多数贡献 菜单项 键盘快捷键 属性页 都很有用 但有时我
  • Java 8:如何创建毫秒、微秒或纳秒的 DateTimeFormatter?

    我需要创建格式化程序来解析具有可选的毫秒 微米或纳秒分数的时间戳 例如 对于我的需求 我看到以下机会 DateTimeFormatter formatter new DateTimeFormatterBuilder append DateT
  • 为什么/何时应该使用泛型方法?

    学习Java的时候遇到过通用方法 public
  • 用于生成 ISO 文件的 Maven 插件

    有没有可以生成ISO镜像的maven插件 我需要获取一些模块的输出 主要是包含 jar 的 zip 文件 并将它们组合成一个 ISO 映像 Thanks 现在有一个 ISO9660 maven 插件可以完成这项工作 https github
  • junit4 使用特定测试方法创建测试套件

    在 junit4 中 我想执行来自不同类的特定测试方法 即想要使用来自不同类的特定测试方法创建一个测试套件 假设我有两门课 public class Test Login Test public void test Login 001 Sy
  • FragmentMap + ActionBar 选项卡

    我一直在尝试插入一个MapView进入一个ActionBar Tab 但我什至无法解决问题 即使谷歌搜索 这是主要活动 Override public void onCreate Bundle savedInstanceState supe
  • 在两个点之间创建一条曲线,每个点都具有标准化向量

    因此 我需要一种写入方法来在两点之间创建一条曲线 每个点都有一个指向任意方向的归一化向量 我一直在尝试设计这样一种方法 但一直无法理解数学 在这里 由于一张图片胜过一千个文字 这就是我所需要的 在图中 矢量垂直于红线 我相信向量需要进行相同
  • JPA ManyToMany 产生的空联接表

    我有一个应用程序 其中我尝试使用 Hibernate 作为 JPA 提供程序来实现两个实体之间的多对多关系 我正在尝试的例子是一个单向的 其中一个相机可以有多个镜头 而镜头可以安装到多个相机中 以下是我的实体类 只需粘贴其中的相关部分 Ca

随机推荐

  • Mac 10.7.5 无法在 AVD 文件夹中创建 SD 卡

    我使用的是 Mac OSX 10 7 5 最近重新安装了最新的 ADT 23 其版本名为 adt bundle mac x86 64 20140624 在安装新版本之前 我删除了仅支持 API 18 的旧版本 ADT 我不记得版本代码是什么
  • 将 C# RSACryptoServiceProvider 代码转换为 Java

    我需要加密字符串以用于项目相关目的 并由供应商提供了以下相同的代码 public static string EncryptString string StringToEncrypt RSACryptoServiceProvider pro
  • 创建“网站构建器” - 我将如何构建它? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我的任务是向我们的应用程序套件添加网站构建器 我们的大多数客户都是非技术型小企业主 实体店 夫妻店 有人告诉我我应该看看Blogger
  • 如何获取Python中捕获的异常的名称?

    如何获取 Python 中引发的异常的名称 e g try foo bar except Exception as exception name of exception assert name of exception NameError
  • goroutine创建多个mongodb连接

    如何在golang中管理超过100000个goroutine的MongoDB连接 我已经创建了一个 mongo Client实例然后使用同一个客户端 但它创建了多个连接 The mongo Client https pkg go dev g
  • 如何使用python正则表达式替换使用捕获的组? [复制]

    这个问题在这里已经有答案了 假设我想改变the blue dog and blue cat wore blue hats to the gray dog and gray cat wore blue hats With sed我可以按如下方
  • 如何在 C 中将 2 字节整数转换并分解为 2 个不同的字符?

    我想转换一个 unsigned int 并将其分成 2 个字符 例如 如果整数为 1 则其二进制表示形式为 0000 0001 我希望 0000 部分位于一个 char 变量中 0001 部分位于另一个二进制变量中 我如何在 C 中实现这一
  • 对象“RealmSwiftPermissionRole”上不存在主键属性“名称”

    我在我的 swift 项目中使用 RealmSwift 作为数据库 今天 在 Xcode beta 版本 11 中打开我的项目后 我的应用程序崩溃并出现以下错误 由于未捕获的异常 RLMException 而终止应用程序 原因 对象 Rea
  • 跨进程(和机器)同步(信号量)

    背景 我的 WCF 应用程序必须调用一个没有任何并发 检查的服务 它是由第三方创建的服务 让他们添加并发检查可能是不可能的 我可以确保调用第三方服务的唯一方法是通过我的 WCF 应用程序 所以我正在考虑在我的代码中添加并发检查 为此 我将使
  • 与 APN 名称相关的问题

    我正在使用 simcom900 调制解调器 我能够成功建立 GPRS 连接并将数据从我的模块发送到服务器 我正在使用 2g Airtel SIM 我已将 APN 名称指定为 airtelgprs com 我也尝试过指定不同的 APN与 Ai
  • 在 React+Django 应用程序中加载图像

    所以我有一个用 python django 编写的小项目作为后端 并为前端做出反应 我按照以下教程进行操作 http geezhawk github io using react with django rest framework htt
  • 使用 htaccess 重定向到移动网站

    如何将用户重定向到我的移动页面 我在 htaccess 上使用此代码 RewriteEngine on RewriteCond QUERY STRING desktop RewriteCond HTTP USER AGENT android
  • Mock 对象和 Spring 注解

    我在代码中使用 Spring 注释来执行 DI 假设我有一个类 class1 依赖于另一个类 class2 我定义 class1 如下 Component public class class1 Resource private inter
  • 使用单个操作/规则生成多个目标[重复]

    这个问题在这里已经有答案了 如何编写规则来使用单个操作生成文件集 例子 文件x y z作为单次执行脚本的结果生成t sh它需要文件a作为输入 x y z a t sh GNU make 尝试执行t sh3次 您可以实施中指定的解决方案之一汽
  • 如何加载实体框架预编译视图

    我发现我可以通过使用预编译视图来提高应用程序的性能EdmGen exe tool 这一切都很好 但我和我的大学都无法解决这个问题how生成的 cs文件实际被项目使用 似乎没有任何对任何地方生成的类的引用 那么它是如何被包含在内的呢 任何人都
  • Spring Cloud Stream 多个函数定义

    是否有可能使用函数式 spring cloud function 具有多个独立函数 绑定的样式 我发现的所有示例始终只注册一个具有默认绑定的功能 beaninput output 我想注册多个 每个都有自己的绑定 传统上这可以使用sprin
  • 领域数据库解密失败

    Question 当我尝试打开加密领域文件时Realm Browser Windows 它给了我以下消息 这不是 Realm 文件或者已加密 输入 128 个字符的十六进制编码的加密密钥 重要的 我在保存到磁盘之前关闭我的领域 Code R
  • system()的返回码 = 256

    我使用 system 在 Swift 中执行 shell 命令 正如文档中所述 如果成功 返回值应为 0 如果失败 则返回值应为 1 但我得到 256 并且执行似乎成功了 还有一些其他与魔法值 256 相关的问题 但语言不同 没有解决方案
  • 如何从 NodeJS/Tedious 连接到 SQL Azure?

    我有一个 SQL Azure 数据库 正在尝试从 Azure Linux VM 中运行的 NodeJS 应用程序连接到该数据库 当我在本地 SQL 数据库 和 NodeJS 本地计算机上时 一切工作正常 但是 当我从虚拟机运行时 我得到以下
  • Java 中的弯曲文本

    我正在寻找最简单的方法来绘制一些 我的应用程序上椭圆对象周围的文本 我需要创造一种 拥抱 的感觉 到目前为止 我已经使用 Graphics2D 类来打印我的绘图 在屏幕上 我的 画布 是 BufferedImage 我的椭圆的宽度和高度分别