日期:2014-05-19  浏览次数:20889 次

又是菜鸟求助
[code=Java][/code] public class Xianshiping {
  public static void main (String args[]) {
ImageFrame frame = new ImageFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
  }
 class ImageFrame extends JFrame{
// 显示文本
public void paint(Graphics g) {
g.setFont(new Font("SansSerif",Font.PLAIN,500));
g.drawString("95.5", 30, 550); 
}
//设置背景图片
public ImageFrame()
{
setTitle("ImageTest");
setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
ImagePanel panel = new ImagePanel();
add(panel);
}
public static final int DEFAULT_WIDTH=500;
  public static final int DEFAULT_HEIGHT=500;

  }
class ImagePanel extends JPanel{
  public ImagePanel(){
try{
image = ImageIO.read(new File("img.jpg"));
}
  catch (IOException e)
  {
e.printStackTrace();
}
  }
  public void paintComponent(Graphics g) {
super.paintComponent(g);
if(image==null) return;
int imageWidth=image.getWidth(this);
  int imageHeight=image.getHeight(this);
g.drawImage(image,0,0,null);
for(int i=0;i*imageWidth<=getWidth();i++)
for(int j=0;j*imageHeight<=getHeight();j++)
if(i+j>0)
g.copyArea(0,0,imageWidth,imageHeight,i*imageWidth,j*imageHeight);
}
  private Image image;
  }

为什么我运行起来的时候只显示文字 不显示图片。而且当我把显示文字的代码注释掉之后,就能显示图片了。这是什么原因,求帮助,谢谢!

------解决方案--------------------
是不是因为你重写了 paint 函数,而又没有调用 super ?
public void paint(Graphics g) {
super.paint(g);
g.setFont(new Font("SansSerif",Font.PLAIN,500));
g.drawString("95.5", 30, 550);
}