java swing,怎么在图片里让别人添加文字?

java swing,怎么在图片里让别人添加文字?,第1张

swing里面有没现成的控件 只能自己写一个

简单举例来说 可以继承JPanel控件写个JDrawPanel

用BufferedImage image来装载你需要修改的图片

在JDrawPanel中重写printComponents(Graphics g)方法,将image draw到背景上

在panel上加mouse事件 当点击时d出对话框 让用户输入文字 然后调用image的 image.createGraphics().drawString(String s)方法 把文字加上去

再调用panel的repaint()方法 把文字显示出来

还有Canvas组件还有一些别的组件可以使用 但是都需要自己加功能

先用java.awt.Graphics2D.getFont()取得当前正在使用的字体f,java.awt.Graphics2D.getFontRenderContext()取得当前正在使用的渲染上下文frc

然后再用Rectangle2D rect=f.getStringBounds(str,frc)就可以得到你渲染这些文字所占据的矩形,使用rect.getWidth(), rect,getHeight()就可以知道这个矩形的大小了。

反过来通过像素大小决定字符串的长度没有现成的方法。如果你的字体是等宽的可以先用上面的方法求出一个字符的大小然后自己算,不然就只能先试试一个字符,再试试两个字符……直到超过你要的长度就返回的办法了(看起来效率比较低,不过实际使用的时候不是很影响性能)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11596891.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存