当前位置: 首页 > 面试题库 >

在java中如何加载一张图片?

龙飞文
2023-03-14
问题内容

在java中如何加载一张图片?


问题答案:

首先,更改此行:

image = ImageIO.read(getClass().getClassLoader().getResource("resources/icon.gif"));

对此:

image = ImageIO.read(getClass().getResource("/resources/icon.gif"));

可以在此线程上找到有关这两种方法之间的区别的更多信息 - 加载资源的不同方法

对于Eclipse:

  • 如何将图像添加到项目中的资源文件夹

对于NetBeans:

  • 在Java GUI应用程序中处理图像
  • 如何将图像添加到项目

对于IntelliJ IDEA:

  • 右键单击项目的src文件夹。选择新建->包
  • 在“ 新建软件包对话框”下,键入软件包的名称,例如resources。点击确定
  • 右键单击资源包。选择新建->包
  • 在“ 新建软件包对话框”下,键入软件包的名称,例如images。点击确定
  • 现在,选择要添加到项目中的图像,将其复制。右键单击resources.images包,里面的IDE,并选择粘贴
  • 使用最后一个链接检查现在如何以Java代码访问此文件。虽然对于此示例,将使用
getClass().getResource("/resources/images/myImage.imageExtension");
  • Shift+ F10制作并运行项目。在资源和图像文件夹,将里面自动生成出来的文件夹。

如果你手动进行操作:

  • 如何将图像添加到你的项目
  • 如何使用图标
  • 对此答案的第一个代码示例给出了一些额外的说明。

快速参考代码示例(尽管需要更多详细信息,但需要一些额外的说明链接):

package swingtest;

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

/**
 * Created with IntelliJ IDEA.
 * User: Gagandeep Bali
 * Date: 7/1/14
 * Time: 9:44 AM
 * To change this template use File | Settings | File Templates.
 */
public class ImageExample {

    private MyPanel contentPane;

    private void displayGUI() {
        JFrame frame = new JFrame("Image Example");
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

        contentPane = new MyPanel();

        frame.setContentPane(contentPane);
        frame.pack();
        frame.setLocationByPlatform(true);
        frame.setVisible(true);
    }

    private class MyPanel extends JPanel {

        private BufferedImage image;

        public MyPanel() {
            try {
                image = ImageIO.read(MyPanel.class.getResource("/resources/images/planetbackground.jpg"));
            } catch (IOException ioe) {
                ioe.printStackTrace();
            }
        }

        @Override
        public Dimension getPreferredSize() {
            return image == null ? new Dimension(400, 300): new Dimension(image.getWidth(), image.getHeight());
        }

        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            g.drawImage(image, 0, 0, this);
        }
    }

    public static void main(String[] args) {
        Runnable runnable = new Runnable() {
            @Override
            public void run() {
                new ImageExample().displayGUI();
            }
        };
        EventQueue.invokeLater(runnable);
    }
}


 类似资料:
  • 本文向大家介绍js怎么控制一次加载一张图片,加载完后再加载下一张相关面试题,主要包含被问及js怎么控制一次加载一张图片,加载完后再加载下一张时的应答技巧和注意事项,需要的朋友参考一下 参考回答: (1)方法1 alert('图片的宽度为:'+obj.width+';图片的高度为:'+obj.height); (2)方法2    

  • 问题内容: 我需要以简单的Java独立应用程序从Web加载图像。有任何想法吗? 问题答案: 这足以启动您吗?不知道您要从那里做什么。

  • 问题内容: 我有一个panel.java文件,看起来像下面的代码: 我想显示test.gif文件。我该如何完成?因为当我在Eclipse中运行它时,我只会得到其中没有图像的jframe。 问题答案: 用这个

  • 问题内容: 我刚刚开始研究Java 8,并尝试了lambda,我认为我想尝试重写最近写的一件非常简单的东西。我需要将字符串映射到列映射转换为另一个字符串映射到列映射,其中新映射中的列是第一个映射中列的防御性副本。列具有复制构造函数。到目前为止,我最接近的是: 但我敢肯定,必须有更好的方法来完成这项工作,对于您的建议我将不胜感激。 问题答案: 您可以使用收集器:

  • 问题内容: 当我尝试在applet浏览器中运行applet时,无法找到资源(图像)。我尝试像这样加载资源: 但是当我在appet查看器中运行它时,路径是这样的:imgPath:file:D:/Work/app/build/classes/com/blah/Images/a.png 虽然此路径中有图像,但前缀文件是:导致问题,我该如何测试此代码? 当部署在服务器中并且代码库返回服务器URL时,此代码

  • 问题内容: 我有几个映像(第3方),例如,设置mysql,设置通用的php应用程序环境,设置第3方工具。 我想制作一个Dockerfile / Docker映像,将两个映像合并,然后运行更多命令 问题答案: 您可以将它们链接起来。你可以在这里找到更多 https://github.com/docker/docker/issues/3378#issuecomment-31314906 摘自上面的链接