问题描述
我在尝试为 Java 中的绘制字符串函数设置字体时遇到一些问题。
我的目标是使用函数 drawString(text,posLeft,posTop);
在图像上绘制一些东西,其中 text
是字符串,posLeft
和 posTop
是它从屏幕左侧和顶部的位置。
为此,我有以下代码:
Icon icon = new ImageIcon(image);
image.getGraphics().setFont(new Font("Arial",Font.BOLD,size));
image.getGraphics().setColor(c);
image.getGraphics().drawString(text,posTop);
image.getGraphics().dispose();
其中 image
是 java.awt.BufferedImage
类对象的实例,icon
是 javax.swing.Icon
的实例,具有类 javax.swing.ImageIcon.ImageIcon(Image image)
的构造函数。字体属于 java.awt.Font
类。
然后我用 image.getGraphics()
获取图形,但是在尝试设置字体部分时发生空指针异常,在 image.getGraphics().setFont(new Font("Arial",size));
行中。
错误消息仅为 java.lang.NullPointerException: null
。我尝试更改字体,但它仍然相同。
非常感谢有关此问题的任何帮助!
(希望我没有错过一些重要的部分)
image 和 image.getGraphics() 都在工作,因为我在代码中检查了它并得到以下内容:
BufferedImage@3c52b5ae: type = 5 ColorModel: #pixelBits = 24 numComponents = 3 color space = java.awt.color.ICC_ColorSpace@35069130 transparency = 1 has alpha = false isAlphaPre = false ByteInterleavedRaster: width = 659 height = 587 #numDataElements 3 dataOff[0] = 2
----
sun.java2d.SunGraphics2D[font=java.awt.Font[family=Dialog,name=Dialog,style=plain,size=12],color=java.awt.Color[r=255,g=255,b=255]]
----
上面---
的第一部分是image
,后面是image.getGraphics()
。
另外,我尝试使用 Font f=new Font('Arial',size)
,在那里我首先得到了空指针异常和一些空值。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)