JPanel窗体重绘

来源:百度知道 编辑:UC知道 时间:2024/05/17 23:25:32
如何将JPanel窗体里边的背景图片和按钮擦除掉,然后重新添加按钮和背景?使用同一个窗体.
我的代码:
addbutton类:
public class addButton {
String Path=System.getProperty("user.dir");//获取Java的路径
final ImageButton button = new ImageButton(Path+"\\src\\zhu\\btn1.jpg");
public void adbtn(){
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
//需要在此处添加更换代码
}
});
JPanel类代码:
public class NewFrm extends JPanel{
private Image img;

public NewFrm(String img) {
this(new ImageIcon(img).getImage());
}

public NewFrm(Image img) {
this.img = img;
}

public void paintComponent(Graphics g) {
g.drawImage(img,0,0,null);
}

下面这段代码对你有用
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.imageio.*;
public class PicPanel extends JPanel
{
BufferedImage img;
public PicPanel(String path)
{
super();
try
{
img = ImageIO.read(new File(path));
}
catch (Exception e)
{
System.out.println("Error: "+e.toString());
}
}
public void paintComponent(Graphics g)//绘制图片的方法
{
try
{
Rectangle rect = new Rectangle(0,0,img.getWidth(null),img.getHeight(null));
TexturePaint texture = new TexturePaint(img,rect);
Graphics2D g2 = (Graphics2D)g;
g2.setPaint(texture);
g2.fillRect(0,0,this.getWidth(),this.getHeight());
super.paintComponent(g);
}
catch(Exception e)
{
System.out.println("Error: "+e.toString());
}
}
public void setImage(String path)//