在Java中设置字体时出现空指针异常

问题描述

我在尝试为 Java 中的绘制字符串函数设置字体时遇到一些问题。 我的目标是使用函数 drawString(text,posLeft,posTop); 在图像上绘制一些东西,其中 text 是字符串,posLeftposTop 是它从屏幕左侧和顶部的位置。 为此,我有以下代码

        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(); 

其中 imagejava.awt.BufferedImage 类对象的实例,iconjavax.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 (将#修改为@)