import java.applet.*;
import java.awt.event.*;
import java.awt.*;public class K5 extends Applet implements ActionListener{
private Image image;
private int i_width,i_height,x,y;
private Panel panel,panel1;private Button button=new Button("Bigger");
private Button button1=new Button("Smaller");
private Button button2=new Button("恢复");
public void init(){
image=getImage(this.getDocumentBase(),"a/i.jpg");
x=i_width=image.getWidth(this);
y=i_height=image.getHeight(this);setLayout(new BorderLayout());
button.addActionListener(this);button1.addActionListener(this);button2.addActionListener(this);panel=new Panel();add(panel,"Center");panel1=new Panel(new GridLayout(1,3));panel1.add(button);panel1.add(button1);panel1.add(button2);add(panel1,"South");
}public void paint(Graphics g){
g.drawImage(image,0,0,x,y,this);
}
public void actionPerformed(ActionEvent e){}
}

解决方案 »

  1.   

    文件的相对路径有没有写错?确定吗?
    确定请贴出带有main方法的程序入口,以便我们帮助你解决问题。
      

  2.   

    自己看下图片有没有被读出来啊  跟包的目录结构有关系的额
    做UI最好用AWT DESIGNER哇  会很方便 加图片也方便
      

  3.   

    我只能用APPLET程序写,图片是在html文件夹下a文件夹里,另外我还想要实现图片的放大与缩小的功能下面写法不对,要怎样写
    import java.applet.*;
    import java.awt.event.*;
    import java.awt.*;public class K5 extends Applet implements ActionListener{
    private Image image;
    private int i_width,i_height,x,y;
    private Panel panel,panel1;private Button button=new Button("Bigger");
    private Button button1=new Button("Smaller");
    private Button button2=new Button("恢复");
    public void init(){
    image=getImage(this.getDocumentBase(),"a/i.jpg");
    x=i_width=image.getWidth(this);
    y=i_height=image.getHeight(this);setLayout(new BorderLayout());
    button.addActionListener(this);button1.addActionListener(this);button2.addActionListener(this);panel=new Panel();add(panel,"Center");panel1=new Panel(new GridLayout(1,3));panel1.add(button);panel1.add(button1);panel1.add(button2);add(panel1,"South");
    }public void paint(Graphics g){
    g.drawImage(image,0,0,x,y,this);
    }
    public void actionPerformed(ActionEvent e){
    if(e.getSource()==button){x=x+4;y=y+4;g.drawImage(image,0,0,x,y,this);}
    if(e.getSource()==button1){x=x-4;y=y-4;g.drawImage(image,0,0,x,y,this);}
    if(e.getSource()==button2){g.drawImage(image,0,0,i_width,i_height,this);}}
    }
      

  4.   

    首先确定相对路径,把图片放进去,然后直接使用相对路径(不要用get)new Image("./a/i.jpg")
      

  5.   

    5楼的用
    public Image image=new Image("./a/i.bmp");
    Panel1.java:8: java.awt.Image 是抽象的;无法对其进行实例化
    public Image image=new Image("./a/i.bmp");
      

  6.   

    我估计是你后期组件把你的图片给覆盖了,如果单纯地用下面这个方法,显示图片是没有问题的。图片是你的头像。import java.applet.*;  
    import java.awt.*; 
    import java.net.*;public class JTabbedTest extends Applet{ 
    private Image image;  public void init(){ 
    try{
    image = getImage(new URL("http://avatar.profile.csdn.net/5/2/8/2_ufofind.jpg")); 

    }catch (Exception e){
    e.printStackTrace();
    }
    }  public void paint(Graphics g){ 
    g.drawImage(image, 0, 0, this); 
    }
    }
      

  7.   

    http://p.blog.csdn.net/images/p_blog_csdn_net/justinavril/EntryImages/20090903/1.jpg
      

  8.   

    我只是解释下路径…………怎么用image你自己看啦,试试看new ImageIcon("./a/i.bmp").getImage()
      

  9.   

    我的图片是在D:\a下刚开始我以为是图片大了不行,后来我就换了i.bmp也不行
    9楼:可爱小猴,我用你的程序一样也不行
    D:\>appletviewer jt.html
    java.security.AccessControlException: access denied (java.net.SocketPermission a
    vatar.profile.csdn.net resolve)
            at java.security.AccessControlContext.checkPermission(AccessControlConte
    xt.java:323)
            at java.security.AccessController.checkPermission(AccessController.java:
    546)
            at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
            at java.lang.SecurityManager.checkConnect(SecurityManager.java:1031)
            at sun.awt.image.URLImageSource.<init>(URLImageSource.java:41)
            at sun.applet.AppletImageRef.reconstitute(AppletImageRef.java:33)
            at sun.misc.Ref.get(Ref.java:47)
            at sun.applet.AppletViewer.getCachedImage(AppletViewer.java:377)
            at sun.applet.AppletViewer.getImage(AppletViewer.java:372)
            at java.applet.Applet.getImage(Applet.java:242)
            at JTabbedTest.init(JTabbedTest.java:10)
            at sun.applet.AppletPanel.run(AppletPanel.java:424)
            at java.lang.Thread.run(Thread.java:619)
      

  10.   

    dz007:我按你的方法仍是不行
    import java.applet.*;
    import java.awt.event.*;
    import java.awt.*;
    import javax.swing.*;public class Panel1 extends Panel{
    //private Toolkit tk=getToolkit();
    public Image image=new ImageIcon("./a/i.bmp").getImage();
    public int i_width,i_height,x,y;public void init(){x=i_width=image.getWidth(this);
    y=i_height=image.getHeight(this);}
    public void paint(Graphics g){
    g.drawImage(image,0,0,x,y,this);
    }}:\>appletviewer panel1.html
    ava.lang.ClassCastException: Panel1 cannot be cast to java.applet.Applet
           at sun.applet.AppletPanel.createApplet(AppletPanel.java:785)
           at sun.applet.AppletPanel.runLoader(AppletPanel.java:714)
           at sun.applet.AppletPanel.run(AppletPanel.java:368)
           at java.lang.Thread.run(Thread.java:619)
      

  11.   

    我用URL是可以的,说明这个做法是没有问题的。这样吧,你注意两点吧。先把相对路径换成绝对路径,第二,用一张gif的图片来替代你的图片。
      

  12.   

    可爱的小总算见到了图像了
    第一我把路径改了,第二我把图像换成了gif
    余下的问题就是怎样实现图像的放大与缩小
    import java.applet.*;  
    import java.awt.*; 
    import java.net.*;public class JTabbedTest extends Applet{ 
        private Image image;     public void init(){ 
            try{
                image = getImage(getDocumentBase(),"a\\i.gif"); 
                
            }catch (Exception e){
                e.printStackTrace();
            }
        }     public void paint(Graphics g){ 
            g.drawImage(image, 0, 0, this); 
        }
    }
      

  13.   

    缩放问题 自己看看书 找找资料吧 呵呵 awt支持gif和jpeg两种格式的图片 貌似是这样的
      

  14.   

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.applet.*;
    public class K5 extends Applet{
        
    private Button button;
    private Button button1;
    private Button button2;
    private Kp kp;
      
        public void init()  {
             
             //Container contentPane = this.getContentPane();
             //contentPane.setLayout(new BorderLayout());     
               setLayout(new BorderLayout());         kp = new Kp();//创建自定义面板对象        
             //contentPane.add(kp, BorderLayout.CENTER);
               add(kp, BorderLayout.CENTER);
             Panel btnPanel = new Panel();
             btnPanel.setLayout(new FlowLayout());
             
             button=new Button("Bigger"); 
             btnPanel.add(button);
             button.addActionListener(new ActionListener(){
                    public void actionPerformed(ActionEvent e)  {      
                        kp.width+=5; //文字显示坐标增加10 
                        kp.height+=5;    
                        kp.repaint(); //刷新面板的显示
                    }
                });
       
             button1=new Button("Smaller");        
             btnPanel.add(button1);
             button1.addActionListener(new ActionListener(){
                    public void actionPerformed(ActionEvent e)  {      
                        kp.width-=5; //文字显示坐标增加10 
                        kp.height-=5;
                        kp.repaint();//刷新面板的显示
                    }
                });
             
             button2=new Button("恢复");
             btnPanel.add(button2);
             button2.addActionListener(new ActionListener(){
                    public void actionPerformed(ActionEvent e)  {      
                        kp.width=kp.x;//图片显示宽增加10
                        kp.height=kp.y; //图片显示高增加10     
                        kp.repaint(); //刷新面板的显示
                    }
                });
             
            
             //contentPane.add(btnPanel, BorderLayout.SOUTH);
               add(btnPanel, BorderLayout.SOUTH);
             
        }  
        
        
    }
    import java.awt.*;
    import javax.swing.*;public class Kp
        extends Panel {    String message = "面板上显示文字";
        int xMessage = 20, yMessage = 80; //文字显示坐标
        Image image;
        int xImage = 20, yImage = 100; //图片显示坐标
        int width = 300, height = 250; //图片显示宽高
        int x=width,y=height;
        public Kp() {
            Toolkit tk = this.getToolkit();
            image = tk.getImage("pic15\\a.jpg");
        }    public void paint(Graphics g) {
            super.paint(g);
            g.drawString(message, xMessage, yMessage); //显示文字
            g.drawImage(image, xImage, yImage, width, height, this); //显示图片
        }    public Dimension getPreferredSize() {
            return new Dimension(350, 400); //面板宽350、高400像素
        }
    }