有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将JPG加载到Swing应用程序中

我想我在这里有点情绪低落。我一直在跟踪examples。我读了tutorials。但似乎什么都不适合我

假设我有一个JPEG在下面的URI:C:\Users\MyUser\someIcon.jpeg

假设我有一个Swing应用程序,它有一个JPanel,我想把这个JPEG添加到JPanel中(定位/布局无关紧要)

你是如何做到这一点的我没有收到任何错误或异常,只是没有看到JPEG加载。我试图使用的代码是:

String someIconUri = "C:\Users\MyUser\someIcon.jpeg";
URL imageUrl = getClass().getResource(someIconUri);
ImageIcon imageIcon = new ImageIcon(imageUrl);
myPanel.add(imageIcon);

请建议。。。我从今天中午就开始处理这个。。。现在是午夜。提前感谢所有朝着正确方向的推动


共 (1) 个答案

  1. # 1 楼答案

    String someIconUri = "C:\Users\MyUser\someIcon.jpeg";
    

    不,它不是“某个图标URI”,它根本不是有效的URI。想想看,它甚至不是一个可编译的语句,因为String包含非法的转义字符

    这可能是类似于

    String someIconUri = "file:///C:/Users/MyUser/someIcon.jpeg";
    

    但是getResource()既不是必需的,也不是有用的,因为它只会在运行时类路径上定位资源。直接从String构造一个URL


    但这实际上只是“答案的一部分”。原因如下

    在这种情况下,基本上有两种类型的资源。应用程序资源和用户资源

    应用程序资源

    这些资源可能包括框架图标、按钮和菜单图标(Action图标)、选项卡图标。帮助文件(及相关图像)、启动图像

    它们应该被添加到一个单独的Jar中(大多数情况下),并添加到应用程序的运行时类路径中(使用清单或其他方式,如applet元素或JNLP文件)

    应用程序资源应该通过URL访问,URL可以通过getResource()获得:

    URL iconUrl = this.getClass().getResource("/icons/copy.jpg");
    

    用户资源

    用户希望打开(编辑/打印)现有文本文档,从图像帧制作动画GIF,在其文件系统上编辑图像

    对于这些类型的资源(假设app.受信任或没有安全管理器),为用户提供^{}。它将返回一个或多个特定的、现有的File(取决于配置和使用的方式)

    在这种情况下,永远不要将File转换为任何其他内容,直接使用实例即可


    大多数从资源中获取输入的方法(值得一提)都会接受File{}InputStream

    最后一个对于在内存中生成或从套接字或JNLP API^{}对象等源获取的内容非常有用。沙盒应用程序对后者特别感兴趣。使用Java Web Start启动或嵌入