Swing 控件JPanel等设置背景图片
2012-08-30 22:21
453 查看
Swing控件有直接设置背景颜色的方法,但没有直接设置背景图片的方法。这里不解的是为什么Swing默认不提供这个方法呢?既然它不提供我们就自己写一个吧,也不难,你要你知道Swing容器的图片都是用protected void paintComponent(Graphics g) 画上去的就可以了。
我们写一个类提供一个public void setBackground(Icon wallpaper) 方法,然后在这个方法里,我们保存传入的图片,然后利用repaint()方法去重绘控件,这是系统会自动调用控件的protected void paintComponent(Graphics
g) 方法。 于是我们就达到了设置背景的目的。下面是完整的代码。
我们写一个类提供一个public void setBackground(Icon wallpaper) 方法,然后在这个方法里,我们保存传入的图片,然后利用repaint()方法去重绘控件,这是系统会自动调用控件的protected void paintComponent(Graphics
g) 方法。 于是我们就达到了设置背景的目的。下面是完整的代码。
import java.awt.Graphics; import java.awt.Image; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JPanel; public class ZPanel extends JPanel { private static final long serialVersionUID = 6702278957072713279L; private Icon wallpaper; public ZPanel() { } protected void paintComponent(Graphics g) { if (null != wallpaper) { processBackground(g); } System.out.println("f:paintComponent(Graphics g)"); } public void setBackground(Icon wallpaper) { this.wallpaper = wallpaper; this.repaint(); } private void processBackground(Graphics g) { ImageIcon icon = (ImageIcon) wallpaper; Image image = icon.getImage(); int cw = getWidth(); int ch = getHeight(); int iw = image.getWidth(this); int ih = image.getHeight(this); int x = 0; int y = 0; while (y <= ch) { g.drawImage(image, x, y, this); x += iw; if (x >= cw) { x = 0; y += ih; } } } }
相关文章推荐
- Swing控件(JPanel,Container等)设置背景图片
- Swing控件(JPanel,Container等)设置背景图片
- 控件设置背景或图片后无法对齐
- 设置QFrame的背景图片并不影响其子控件的效果
- 代码code设置9.png/9-patch 图片背景后,此view中的TextView等控件显示不正常(常见于listview中)
- Android代码code设置9.png/9-patch 图片背景后,此view中的控件显示不正常
- [JAVA]①重绘JPanel面板,设置窗体背景图片
- 设置QT控件背景图片方法总结
- VC中设置了对话框背景图片的情况下不能正确显示radio控件透明
- aswing学习笔记3-在JPanel中,如何将.png格式的图片设置为背景?
- swing JPanel设置背景图 拉伸、平铺、居中
- Java.swing-如何为frame窗口设置背景图片
- 关于JPanel设置背景图片的Bug说明
- Qt利用setstylesheet给控件设置背景图片不能显示
- SWING设置背景图片
- 自己制作一个可以设置背景图片的Jpanel
- [Android开发] 代码code设置9.png/9-patch 图片背景后,此view中的TextView等控件显示不正常(常见于listview中)
- Qt中几种设置控件的图片背景的方法
- swing设置背景图片和按钮
- [Android开发] 代码code设置9.png/9-patch 图片背景后,此view中的TextView等控件显示不正常(常见于listview中)