我将你的程序调试过了!首先你的第一个class Imagetest 必须和这个文件名一样(包括大小写)  然后后面两个class 不能是public的,必须去掉public就可以了,
如果还有问题就你你的图形文件的路径问题,应该是C:\JWORK\output\imagetest\jws-dukeonly.gif吧

解决方案 »

  1.   

    不应该有那么多public class 嗄!
      Java允许你只能有一个公共类啊.朋友!
      package imagetest;
    import javax.swing.*;
    import java.awt.*;
    import java.io.*;
    import java.awt.event.*;
    //import javax.imageio.*;          好像没有这个包吧!
    public class ImageTest {
       public static void main(String[] args){
          ImageFrame frame=new ImageFrame();
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.show();
       }
    }
     class ImageFrame extends JFrame {
       private static final int DEFAULT_WIDTH = 300;
       private static final int DEFAULT_HEIGHT = 200;    public ImageFrame(){
          setTitle("ImageTest");
          setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
          ImagePanel panel=new ImagePanel();
          Container containerPane=getContentPane();
          containerPane.add(panel);
          }
    }
     class ImagePanel extends JPanel {
       private Image image;
       public ImagePanel(){
    try{
             image=ImageIO.read(new File("C:\\JWORK\\output\\imagetest\\jws-dukeonly.gif"));    //     这里也是!
             }
          catch(IOException exception){
             exception.printStackTrace();
          } 
       }
       public void paintComponent(Graphics g){
          super.paint(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); 
          
       }
    }
      

  2.   

    哦,sorry,看错了,有这个类 import javax.imageio.*;
      image=ImageIO.read(new File("C:\\JWORK\\output\\imagetest\\jws-dukeonly.gif"));
    这里没有错!
      

  3.   

    编译没有问题,执行的时候super.paint(g)调用paintComponent()这样就递归调用了
    把super.paint()改成super.paintComponent(g)
      

  4.   

    递归导致死循环了调用次序update-->paint-->paintComponent.上层会完成这样一个调用过程
      

  5.   

    我在下班之前运行了下
    "Frame1.java": Error #: 475 : class ImageTest is public; must be declared in a file named ImageTest.java at line 7, column 8
    "Frame1.java": Error #: 475 : class ImageFrame is public; must be declared in a file named ImageFrame.java at line 14, column 8
    "Frame1.java": Error #: 475 : class ImagePanel is public; must be declared in a file named ImagePanel.java at line 26, column 8
    "Frame1.java": Error #: 704 : cannot access directory javax\imageio at line 6, column 1
    "Frame1.java": Error #: 300 : variable ImageIO not found in class imagetest.ImagePanel at line 30, column 16
    "Frame1.java": Error #: 556 : exception java.io.IOException is never thrown in the corresponding try block at line 32, column 7