这道程序图片怎么没显示出来啊??????
package chapter13;
import java.awt.*;
import javax.swing.*;public class DisplayImage extends JFrame{
public DisplayImage(){
add(new ImageCanvas());
}
public static void main(String[] args) {
JFrame frame = new DisplayImage();
frame.setTitle("DisplayImage");
frame.setSize(300, 300);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}class ImageCanvas extends JPanel{
ImageIcon imageIcon = new ImageIcon("image/mm2.jpg");//图片确认存在
Image image1 = imageIcon.getImage();

public void paintCompnent(Graphics g){
super.paintComponent(g); if(image1 != null)
g.drawImage(image1, 0, 0, getWidth(), getHeight(), this);
}
}

解决方案 »

  1.   

     public void paintCompnent(Graphics g){
            super.paintComponent(g);                if(image1 != null)
                g.drawImage(image1, 0, 0, getWidth(), getHeight(), this);
        }改成public void paint(Graphics g){
      

  2.   


    在Canvas中(其实是任意组件中)绘制图像或者文本都要依赖于paint方法的调用,它就是做绘制工作的。它是JVM自动调用的。不需要通过对象名.paint的显式调用。
    而你的程序中用的是自定义的paintCompnent,Java编译器不会去自动调用它,自然就无法绘制了。
      

  3.   

    画图时调用paint方法,所以你把画图的代码放在paint方法中,就可以了!