简单举例来说 可以继承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()就可以知道这个矩形的大小了。
反过来通过像素大小决定字符串的长度没有现成的方法。如果你的字体是等宽的可以先用上面的方法求出一个字符的大小然后自己算,不然就只能先试试一个字符,再试试两个字符……直到超过你要的长度就返回的办法了(看起来效率比较低,不过实际使用的时候不是很影响性能)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)