如何在 Jframe java(eclipse) 中加载图像?

Posted

技术标签:

【中文标题】如何在 Jframe java(eclipse) 中加载图像?【英文标题】:How do I load images in Jframe java(eclipse)? 【发布时间】:2013-09-23 03:34:33 【问题描述】:

我有一个paneel.java 文件,代码如下:

import java.awt.*;
import javax.swing.*;

public class Paneel extends JFrame

    public static void main ( String [] args )
    
        // frame
        JFrame frame = new Paneel();
        frame.setSize ( 1000, 1000 );
        frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        frame.setTitle( "Remembory" );
        frame.setVisible( true );
    
    
    class Gifpaneel extends JPanel
        private ImageIcon gif, animatedGif;
        
        public Gifpaneel() 
            gif = new ImageIcon( "test.gif" );
            animatedGif = new ImageIcon( "animaties/test.gif" );
               
        
        public void paintComponent( Graphics g )
            super.paintComponent( g );
            
            gif.paintIcon( this, g, 100, 100 );
            animatedGif.paintIcon ( this, g, 250, 100 );
        
        
    

我想展示 test.gif 文件。 我该怎么做?因为当我在 eclipse 中运行它时,我只得到没有图像的 jframe。

【问题讨论】:

您尚未添加创建 Gifpaneel 对象并将其添加到您的 JFrame。 我该如何完成这项工作? 请查看如何add images to Eclipse Project,以及此answer 了解更多信息。希望它有所帮助:-) 【参考方案1】:

使用这个

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.*;

public class ImageInFrame 
    public static void main(String[] args) throws IOException 
        String path = "Image1.jpg";
        File file = new File(path);
        BufferedImage image = ImageIO.read(file);
        JLabel label = new JLabel(new ImageIcon(image));
        JFrame f = new JFrame();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.getContentPane().add(label);
        f.pack();
        f.setLocation(200,200);
        f.setVisible(true);
    

【讨论】:

【参考方案2】:

你需要为图像设置一个文件路径..像这样

final ImageIcon icon = new ImageIcon("C:\\Users\\you\\Desktop\\test.gif");

【讨论】:

虽然是个好建议,但这不是这里的大问题。如果未设置绝对路径,它将使用相对于执行位置的路径。【参考方案3】:
public static void main ( String [] args )

    // frame
    JFrame frame = new Paneel();
    frame.setSize ( 1000, 1000 );
    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    frame.setTitle( "Remembory" );

    // Add following
    GifPaneel gifpan = new GifPaneel();
    gifpan.repaint();
    frame.add(gifpan);


    frame.setVisible( true );

【讨论】:

请不要显式调用paintComponent(...),这不是程序员的工作,只需调用gifpan.repaint(),它会隐式调用paintComponent(...) :-) 实际上,在这种特定情况下,您甚至都不应该打电话给repaint(),因为frame.setVisible(true) 会隐含地这样做 :-) 其余的你最欢迎并保持微笑:-)【参考方案4】:

在您的项目文件中创建名为图像的包并将图像导入该特定包中。现在,取一个标签并选择图标属性并从类路径中选择图像。

【讨论】:

仅供参考,*** 只懂英文! 这个答案将从一些示例代码中受益匪浅。照原样......这看起来像是回答问题的有效尝试,但这不是一个很好的尝试,所以我不希望有人支持它。即便如此,这也是一种尝试,所以我将其标记为“看起来不错”,以回应有人提出的建议将其删除的标志。

以上是关于如何在 Jframe java(eclipse) 中加载图像?的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse中jframe怎么用属性设背景图片

在eclipse中导入现有的java项目但JFrame的设计视图不存在?

从 Eclipse 运行时未出现 Java JFrame 窗口

eclipse中jframe如何使用,怎么创建按钮对应的事件,是设置,还是敲代码

Java Gui 组件不会出现在 JFrame 中

java窗口背景颜色怎么设定?用setBackground()好像不行,请大侠指教!