请问为什么JPanel中drawImage函数画不出图片代码如下:
public class Face extends Frame{ public Face (String str){
       super(str);
       
       
} public static void main(String args[ ]){
Frame ff = new Face("gui");
Mypanel panel = new Mypanel();

ff.add(panel);
ActionListener al = new ActionListener();
ff.addWindowListener(al);

ff.setVisible(true);
}



}  class Mypanel extends javax.swing.JPanel 
{
public void paint(Graphics g) {
 Image image= Toolkit.getDefaultToolkit().createImage("33.jpg"); g.drawImage(image,100,100,this);

}

public void paintComponent(Graphics g) {
Image image= Toolkit.getDefaultToolkit().createImage("33.jpg"); g.drawImage(image,100,100,this);
}
}
无论重载paint,或paintComponent都不行,没有看到图片画出,请高手指点原因。

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【orangeabc】截止到2008-07-20 12:27:31的历史汇总数据(不包括此帖):
    发帖的总数量:18                       发帖的总分数:360                      每贴平均分数:20                       
    回帖的总数量:10                       得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:2                        结贴的总分数:40                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:16                       未结的总分数:320                      
    结贴的百分比:11.11 %               结分的百分比:11.11 %                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
      

  2.   

    看注释!!!!有空了多看看书!!!!!
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowListener;import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.JPanel;public class Face extends JFrame // 改成了JFrame,强烈建议不要使用AWT的组件
    {
        //序列化字段,可以删除
        private static final long serialVersionUID = -1743769932464390769L;    public Face(String str)
        {
            super(str);
        }    public static void main(String args[])
        {
            // 为什么声明成final,下面有讲
            final JFrame ff = new Face("gui");
            Mypanel panel = new Mypanel();        ff.add(panel);        // 我不知道你到底想干什么,ActionListener是接口,不能实例化
            // ActionListener al = new ActionListener();
            // addWindowListener不能添加ActionListener
            // ff.addWindowListener(al);        // ===============================================
            WindowListener al = new WindowAdapter()
            {
                public void windowClosing(WindowEvent e)
                {
                    // ff在内部类里使用,必须声明成final
                    ff.dispose();
                }
            };
            
            ff.addWindowListener(al);
            // ===============================================        // 上面一块可以用下面一行代替,功能相同
            // ff.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);        // 设置初始大小
            ff.setSize(600, 500);
            // 设置初始时位于屏幕中间
            ff.setLocationRelativeTo(null);
            ff.setVisible(true);
        }
    }class Mypanel extends JPanel
    {
        // 序列化字段,可以删除
        private static final long serialVersionUID = 8094515598516460551L;    public void paintComponent(Graphics g)
        {
            // 这样创建的图片似乎画不出来
            // Image image = Toolkit.getDefaultToolkit().createImage("33.jpg");
            // 图片33.jpg的位置在项目根目录下
            Image image = new ImageIcon("33.jpg").getImage();
            g.drawImage(image, 100, 100, this);
        }
    }
      

  3.   

    拜托,学java就要遵守java的习惯,看着函数两个字真TMD别扭