首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

【Swing】怎么重复绘制frame背景图片

2012-03-11 
【Swing】如何重复绘制frame背景图片相信大家都知道在web开发中,css有一个样式就是repeat背景图片的:backgro

【Swing】如何重复绘制frame背景图片
相信大家都知道在web开发中,css有一个样式就是repeat背景图片的:background-repeat 属性设置是否及如何重复背景图像。

默认地,背景图像在水平和垂直方向上重复。

CSS code
body  {  background-image: url(stars.gif);  background-repeat: repeat-x;  }


我现在想在JFrame上做类似的操作,如何实现?

首先JFrame里面是没办法绘图的,只能在JFrame的ContentPane里面绘图,我自定义一个JPanel,覆盖paintComponent方法,在里面绘制背景,再把它设置为JFrame的ContentPane,关键是我看了Graphics的API,没有直接x轴或y轴重复绘制的方法。难道要我去计算frame的宽度,然后循环去drawImage(Image img, int x, int y, ImageObserver observer) ??




[解决办法]
JDK没有提供直接的绘图API吧,需要用第三方jar包
[解决办法]
想延伸的重复画就用 TexturePaint 
TexturePaint 要用 BufferedImage 来填充
Java code
Graphics2D g2d = (Graphics2D) g;g2d.setPaint(new TexturePaint(buffImage, new Rectangle2D.Float(        0, 0, buffImage.getWidth(), buffImage.getHeight())));g2d.fillRect(0, 0, this.getWidth(), buffImage.getHeight()); 

热点排行
Bad Request.