Java 图像未加载到帧中
这是我使用的两个不同的文件:Java 图像未加载到帧中,java,image,swing,jframe,paintcomponent,Java,Image,Swing,Jframe,Paintcomponent,这是我使用的两个不同的文件: public class TestFunc { static BufferedImage img; public static void main(String[] args){ JFrame frame = new JFrame("Display"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSi
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);
}
}
但是,框架上没有显示任何内容,并且显示为空白。我对这个很陌生,搞不懂
谢谢。尝试在JLabel中使用图像图标:
JFrame frame = new JFrame("Display");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 400);
frame.setVisible(true);
JPanel jp = new JPanel();
frame.add(jp);
jp.add(new JLabel(new ImageIcon("d:\\temp\\me.JPG")));
frame.pack();
事实上,它写下来没有什么问题——它应该可以正常工作。运行程序时,当前目录中的“Sunset.jpg”是有效图像吗?是的,我也尝试了不同的图像,我不确定为什么它不显示。即使我的目录中存在图像,也需要完整路径名。那就行了。是因为不同的包裹吗?(实际上只有一个包中的所有工作文件现在都在其中)在类路径上找不到映像。该路径是相对于当前工作目录的文本路径,即键入
java TestFunc
时所处的目录。如上所述,文件必须位于工作目录中。如果您对在类路径上查找图像感兴趣,请查看ClassLoader.getResource()
和类似的方法。@Andrew yeah这些类都在同一个包frame.setSize(600400)//坏的
一旦frame.pack()变为冗余//调用good
+对于ImageIcon
和pack()。谢谢不管怎样,与先前的方法有什么区别?是的,删除了调整大小。看起来图像不是你期望的位置,或者至少没有被搜索到你期望的位置。检查路径。好吧,最好的补充是查看SWING官方教程。它有很多有用的东西,而且它的模块化非常好,比如你只能查看你需要的部分,并且仍然能对如何使用它有一个好的想法。以下是图片部分: