【发布时间】:2012-01-06 12:01:06
【问题描述】:
所以这些是我使用的两个不同的文件:
public class TestFunc {
static BufferedImage img;
public static void main(String[] args){
JFrame frame = new JFrame("Display");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 400);
ShowImage I = new ShowImage();
frame.getContentPane().add(I);
frame.setVisible(true);
}
}
还有一个:
public final class ShowImage extends JPanel{
Image image;
public ShowImage(){
super();
image = Toolkit.getDefaultToolkit().getImage("Sunset.jpg");
}
public void paintComponent(Graphics g){
g.drawImage(image, 0, 0, this);
}
}
但是,框架上没有显示任何内容,并且显示为空白。我对这个很陌生,无法弄清楚。
谢谢。
【问题讨论】:
-
实际上写的没什么问题——它应该可以正常工作。运行程序时在当前目录中的“Sunset.jpg”是有效图像吗?
-
是的,我也尝试了不同的图像,我不确定为什么它不显示。
-
需要完整路径名,即使图像存在于我的目录中。然后就可以了。是因为存在不同的软件包吗? (实际上现在只有一个包包含所有工作文件)
-
在类路径中找不到图像。路径是相对于当前工作目录 的文字路径,即您在输入
java TestFunc时所在的目录。如上所述,该文件必须在工作目录中。如果您有兴趣在类路径上查找图像,请查看ClassLoader.getResource()和类似方法。 -
@Andrew 是的,这些课程都在同一个包中
标签: java image swing jframe paintcomponent