import java.awt.EventQueue;
import java.awt.Image;
import java.awt.Toolkit;
import java.io.InputStream;
import java.net.URL;
import java.util.Scanner;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class ResourceTest {
public static void main(String[] args){
EventQueue.invokeLater(new Runnable(){
public void run() {
ResourceFrame frame = new ResourceFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
class ResourceFrame extends JFrame{
public ResourceFrame(){
setSize(500, 300);
URL url = getClass().getResource("speed.gif");
Image img = Toolkit.getDefaultToolkit().getImage(url);
setIconImage(img);
JTextArea area = new JTextArea();
InputStream stream = getClass().getResourceAsStream("student.txt");
Scanner in = new Scanner(stream);
while(in.hasNext())
area.append(in.nextLine()+"\n");
add(area);
}
}
------最佳解决方案--------------------------------------------------------
和ResourceTest.class放到一起。
------其他解决方案--------------------------------------------------------
把speed.gif,student.txt添加到类路径下
------其他解决方案--------------------------------------------------------
把student.txt和speed.gif放置在该类同目录下就行了。
------其他解决方案--------------------------------------------------------
以前遇到过这种问题,我就是把图片和文档放在类路径下了的,eclipse还是报出异常!
------其他解决方案--------------------------------------------------------
这样就对了,但是有一个问题,我以前在放置程序的相关文件(比如.gif或者.txt)时是直接把他们放在的工程目录下,为什么今天就不行了?
------其他解决方案--------------------------------------------------------
src目录下
------其他解决方案--------------------------------------------------------
看过Class类的getResource/getResourceAsStream的文档就明白了。