4、Swing在JPanel中添加背景图片方法

4、Jpanel面板中加载背景图片

在实际应用Java做界面的过程中,常常会涉及到加载背景图片以使页面美化。下面整理了一个小模块以便于调用。

 1 package com.tntxia.commonswing.panel;  
 2   
 3 import java.awt.*;  
 4 import javax.swing.JPanel;  
 5   
 6 /** 
 7  * 有背景图片的Panel类 
 8  * @author tntxia 
 9  * 
10  */  
11 public class BackgroundPanel extends JPanel {  
12       
13     /** 
14      *  
15      */  
16     private static final long serialVersionUID = -6352788025440244338L;  
17       
18     private Image image = null;  
19   
20     public BackgroundPanel(Image image) {  
21         this.image = image;  
22     }  
23   
24     // 固定背景图片,允许这个JPanel可以在图片上添加其他组件  
25     protected void paintComponent(Graphics g) {  
26         g.drawImage(image, 0, 0, this.getWidth(), this.getHeight(), this);  
27     }  
28 }  

 

调用程序示例如下:

1 Image image=new ImageIcon("images/bg.gif").getImage();  
2 JPanel panel = new BackgroundPanel(image); 

 

 

 

可以通过创建一个继承自JPanel的类,并在该类重写paintComponent方法来实现在JPanel添加背景图片。具体步骤如下: 1.创建一个继承自JPanel的类,例如BackgroundPanel。 2.在BackgroundPanel类定义一个Image类型的变量image,用于存储背景图片。 3.在BackgroundPanel类的构造方法,将传入的背景图片赋值给image变量。 4.重写BackgroundPanel类的paintComponent方法,在该方法使用Graphics类的drawImage方法背景图片绘制到JPanel上。 下面是一个示例代码: ```java import java.awt.Graphics; import java.awt.Image; import javax.swing.JPanel; public class BackgroundPanel extends JPanel { private static final long serialVersionUID = 1L; private Image image; public BackgroundPanel(Image image) { this.image = image; } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(image, 0, 0, this.getWidth(), this.getHeight(), this); } } ``` 在使用时,可以先创建一个Image对象,将需要设置为背景的图片加载到该对象,然后创建一个BackgroundPanel对象,并将该Image对象传入BackgroundPanel的构造方法即可。 例如: ```java import java.awt.Image; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; public class Test { public static void main(String[] args) throws IOException { JFrame frame = new JFrame(); frame.setSize(500, 500); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 加载图片 Image image = ImageIO.read(new File("background.jpg")); // 创建BackgroundPanel对象 BackgroundPanel panel = new BackgroundPanel(image); // 将panel添加到frame frame.add(panel); frame.setVisible(true); } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值