我在下班之前运行了下 "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
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);
}
}
image=ImageIO.read(new File("C:\\JWORK\\output\\imagetest\\jws-dukeonly.gif"));
这里没有错!
把super.paint()改成super.paintComponent(g)
"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