以下是完整代码,如何做到第二幅图像打开的时候,不会有第一幅图像的片段
package zgd;import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.filechooser.FileNameExtensionFilter;public class Bar extends JFrame implements ActionListener{
JScrollPane jsp;
JButton jb;

PainImage pi2;
File dirPath;
JFileChooser chooser;
Image bs;

public Bar(String name){
super(name);

jb=new JButton("打开");
jb.addActionListener(this);

this.setLayout(new BorderLayout());

this.add(jb,BorderLayout.NORTH);
this.setSize(300,400);
   this.setVisible(true);

} @Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
String type=arg0.getActionCommand();
if(type=="打开"){
if(dirPath==null){
chooser=new JFileChooser();
}else
 chooser=new JFileChooser(dirPath);
  chooser.setDialogTitle("Open JPEG file");
  
  //用来对文件的类型的限定
  FileNameExtensionFilter filter = new FileNameExtensionFilter("jpg&png", "jpg","png");
  chooser.setFileFilter(filter);
  
  int result = chooser.showOpenDialog(this);  //依附于   mainframecon  存在的
  
  if (result == JFileChooser.APPROVE_OPTION) {
  
  
  dirPath=chooser.getCurrentDirectory();//设定当前打开目录
  chooser.setCurrentDirectory(dirPath);
  
//  System.out.print(dirPath.getPath());
  
  String filePath=chooser.getSelectedFile().getPath();//得到所选文件的路径   
  Image mmm=new ImageIcon(filePath).getImage();
  if(pi2==null){
  pi2=new PainImage(mmm);
  pi2.setPreferredSize(new Dimension(1400,800));//只有放入这个,使其超过jscrollpane才有用
 
  jsp=new JScrollPane(pi2);
  this.add(jsp,BorderLayout.CENTER);
  } else
  pi2.setImage(mmm);
   this.setVisible(true);
  
  }
  
}

}
/*
 * 
 * 此类是用来画背景的
 */
class PainImage extends JPanel {


int P_w=0;
int P_h=0; Image Img=null;

public PainImage(Image img){
this.Img=img;
P_w=Toolkit.getDefaultToolkit().getScreenSize().width;
P_h=Toolkit.getDefaultToolkit().getScreenSize().height;
//所谓Screen 即容器的满额
}

public void setImage(Image img){
this.Img=img;

}

protected void paintComponent(Graphics g) {
// 清屏
super.paintComponent(g);

g.drawImage(Img, 0, 0, P_w, P_h, this);
} }


public static void main (String args[]){
Bar bar=new Bar("示例,示例啦");

}
                                      
}
如图,现在是这样的样子,中间的文字不应该显示的,是第一幅读入图像的