解释下这段代码 package com.company; import java.awt.*; import java.awt.font.FontRenderContext; import java.awt.geom.AffineTransform; //绘制自定义字体 import java.awt.font.GlyphVector; //输出字符文字 import java.util.Scanner; public class name { public static void name(String a){ Font font = new Font("黑体",Font.PLAIN,25); AffineTransform atf = new AffineTransform(); //自定义字体 FontRenderContext frc = new FontRenderContext(atf, true, true); //自定义字体 GlyphVector gv = font.createGlyphVector(frc,a); //要显示的文字 Shape shape = gv.getOutline(0, 10); int x = 50; int y = 35; for (int i = 0; i < y; i++) { for (int j = 0; j < x; j++) { if (shape.contains(j, i)) { System.out.print("*"); } else { System.out.print(" "); } } System.out.println(); } } public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("输入您的姓名"); String s= sc.next(); name(s); } }
时间: 2023-06-07 22:10:44 浏览: 315
这段代码是一个简单的Java程序,用于根据输入的姓名在控制台上输出该姓名的自定义字体形式。具体地,程序的功能是:先通过Java的字体库创建一个黑体、字号为25的字体对象,然后利用该字体对象和输入的姓名创建一个GlyphVector对象,再利用GlyphVector对象和AffineTransform对象生成一个Shape对象表示字体在控制台上的形状,最后将控制台划分为一个个小格子,在每个格子里判断该格子是否应该填充 "*" 字符,若需要则打印,否则打印空格。运行后程序会要求输入姓名,输入后即可输出对应名称的自定义字体形式。
相关问题
-dontwarn java.awt.** 无效,还是报错com.alibaba.excel.exception.ExcelGenerateException: java.lang.NoClassDefFoundError: Failed resolution of: Ljava/awt/font/FontRenderContext;
这个错误可能是因为你的项目中缺少了 java.awt 相关的依赖包,可以尝试在项目中添加 awt 相关的依赖,比如可以添加以下依赖:
```
<dependency>
<groupId>org.apache.servicemix.bundles</groupId>
<artifactId>org.apache.servicemix.bundles.java-awt</artifactId>
<version>1.6.2_4</version>
</dependency>
```
如果还是无法解决问题,可以尝试查看一下你的项目中是否有其他的 jar 包与 awt 相关的 jar 包冲突,如果有,可以尝试排除冲突的 jar 包。
Android 使用easyExcel 报错 Didn't find class "java.awt.font.FontRenderContext"
您好,这个报错通常是因为easyExcel内部使用了Java AWT相关的类,而Android平台上并不支持Java AWT。解决这个问题有以下几个方案:
1. 使用Hutool的Excel模块代替easyExcel,Hutool的Excel模块支持Android平台。
2. 如果您一定要使用easyExcel,可以尝试在项目的proguard规则文件中加入以下规则:
```
-dontwarn java.awt.**
```
这个规则会告诉proguard在混淆的时候忽略Java AWT相关的类和方法,但是这并不能保证easyExcel在Android平台上能够正常运行。
3. 如果以上两个方案都不行,那么您可能需要考虑其他的Excel解析库,比如JExcel、Apache POI等。这些库在使用时需要注意版本兼容性和性能问题,但是它们都是跨平台的,可以在Android平台上正常使用。
希望这些信息能够帮助到您解决问题!
阅读全文